제목대로 입니다. 정말 별것 아닙니다. 아주 가끔 유용하게 쓸 때가 있습니다.
variable <- 2 * 3 (variable <- 2 * 3)
핵심은 2번째 줄입니다.
직접 실행해 보세요.
예전에 어떤 R 전문가들이 모여서 토론하는 메일링리스트에서 저렇게 쓰는 것을 본 적이 있어서 기억하고 있었습니다.
원리는 간단하면서도 오묘한데 R의 구조를 이해하는데도 도움이 됩니다.
R은 값을 가진 symbol이나 값 자체를 호출하게 되면 기본으로 print함수가 호출되어서 심볼의 내용을 출력하게 되어 있습니다. 그런데 <- 나 = 로 변수대입(실제로는 심볼지정)을 하게 되면 print는 기본으로 작동하지 않습니다.
그래서 연산자 심볼인 소괄호로 묶어주면 최종 연산된 값이 리턴되고 바로 print까지 실행됩니다.
저걸 쓸 일이 있겠나 싶겠지만 정말 가끔 쓸 일이 있어요. ^ㅡ^;;;
위에 제가 이해를 위해서 연산자라고 적었는데 오해의 여지가 있지 않을까하는 걱정에 내용을 추가합니다.
R에는 연산자가 없습니다. (아마도…)
다음 코드를 실행하고 결과를 확인해 보세요.
is(`[`) # 얘는 펑션 `[` is(`(`) # 얘도 평션 `(` is(`<-`) # 얘도 평션 is(`=`) # 얘도 평션 is(`]`) # 하지만 얘는 펑션이 아님 `]` is(`)`) # 얘도 아님 `)`
닫는 괄호들은 무슨 타입인지 잘 모르겠지만 함수도 아니고 일반 심볼도 아닙니다. 아마 표현문 종료 기호같은 R 내부에서는 어떻게 취급되는지 모르겠습니다.
다음 코드도 한 번 실행해 보세요.
e <- parse(text="(1+2)") e[1][[1]][[1]] e[1][[1]][[2]] e[1][[1]][[3]] e[1][[1]][[4]]
결과는 직접 확인해 보세요.
이걸 이해하셨다면 R의 내부구조를 많이 이해한 것이 됩니다.