더북(TheBook)

변숫값 할당

변수에 값을 할당할 때는 <-, <<- 또는 = 연산자를 사용한다. <-와 <<-는 뒤에서 설명하겠지만 어느 스코프scope에 있는 변수에 값을 할당하는지에 차이가 있다. 그러나 <-와 =는 대부분의 경우에 바꿔서 사용할 수 있고, 따라서 둘 중 어느 것을 사용해야 하는지는 다소 논쟁적인 주제다. 이 책에서는 <- 연산자를 사용했는데, 그 이유 중 하나는 =는 때에 따라 사용할 수 없는 경우가 있기 때문이다.

<Note> <-와 =의 차이

할당 연산자 중 =는 명령의 최상위 수준에서만 사용할 수 있는 반면 <-는 어느 곳에서나 사용할 수 있다. 따라서 함수 호출과 동시에 변수에 값을 할당하는 목적으로는 <-만 사용할 수 있다. 다음은 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
  >

이 차이 때문에 =를 사용하면 경우에 따라 표현력에 한계가 있을 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.