변숫값 할당
변수에 값을 할당할 때는 <-, <<- 또는 = 연산자를 사용한다. <-와 <<-는 뒤에서 설명하겠지만 어느 스코프scope에 있는 변수에 값을 할당하는지에 차이가 있다. 그러나 <-와 =는 대부분의 경우에 바꿔서 사용할 수 있고, 따라서 둘 중 어느 것을 사용해야 하는지는 다소 논쟁적인 주제다. 이 책에서는 <- 연산자를 사용했는데, 그 이유 중 하나는 =는 때에 따라 사용할 수 없는 경우가 있기 때문이다.
할당 연산자 중 =는 명령의 최상위 수준에서만 사용할 수 있는 반면 <-는 어느 곳에서나 사용할 수 있다. 따라서 함수 호출과 동시에 변수에 값을 할당하는 목적으로는 <-만 사용할 수 있다. 다음은 1, 2, 3을 저장한 벡터를 x에 할당한 후 이 값들의 평균을 구하고 x에 저장된 값을 출력한 예다.
> mean(x <- c(1, 2, 3)) [1] 2 > x [1] 1 2 3
같은 상황에서 =를 사용하면 x에 값이 저장되지 않는다.
> mean(x = c(1, 2, 3)) [1] 2 > x Error: object 'x' not found >
이 차이 때문에 =를 사용하면 경우에 따라 표현력에 한계가 있을 수 있다.