A.3 R Keywords
R의 keyword에는 다음과 같은 것들이 있다.
if
else
function
for # for loop
in # each one in right ones
next # continue to next iteration
break # exit current loop
... # other arguments
마지막 것은 받은 인자를 그대로 다른 함수에 넘겨줄 때 쓴다. 그런데, 생각보다 keyword의 수가 매우 적다. Keyword라고 생각했던 것이 사실은 대부분 함수이기 때문이다. 각종 수학, 논리 연산자 뿐 아니라 심지어는 indexing에 사용하는 bracket ‘[’ 도 함수이다. 다음은 모두 bracket 함수를 부르는 것이며 같은 결과를 낸다
= 1:3
x
# Pick the third element: 3
3] # 3
x[`[`(x, 3) # 3
do.call('[', list(x, 3)) # 3
# Pick the fourth element: Not Available
4] # NA
x[`[`(x, 4) # NA
do.call('[', list(x, 4)) # NA
함수들은 재정의가 가능하므로 연산자들도 재정의하거나, 새로 만드는 것이 가능하다.
A.3.1 if … else …
if 는 else 없이 쓰일 수도 있고, else if의 형태로 여러 번 나올 수도 있으나, 대체로 다음과 같다.
if (condition) {
# statements for the case of TRUE condition
} else {
# statements for the case of FALSE condition
}
condition은 evaluation 결과가 TRUE 또는 FALSE이어야 한다. 좀 더 많은 경우로 분기할 때는 switch라는 함수를 쓸 수도 있다. 하지만, C 언어의 switch만큼 편하지 않아서 생각보다 많이 쓰이지 않는다.
A.3.2 function
R에서 함수(function)는 대체로 다음과 같이 생성한다.
myFunctionName = function(argument1, arugment2, arugment3 = defaultValue, ...)
{
# Check if the input arguments are OK.
on.exit(An expression to be executed) # see help
# Process the input and make the result to be returned
return(Result)
}
함수의 내용이 간단히 한 줄로 나타낼 수 있으면, {}를 생략할 수 있다. 인자(arguments)가 없어도 함수를 만들 때나 부를 때는 ()를 써주어야 한다.
on.ext()함수는 함수가 정상적 또는 비정상적으로 종료할 때 실행해야 하는 것을 넣으면 된다.