The manual 상태 :"="R 연산자를 함수에서 사용하지 않아야하는 이유는 무엇입니까?
이운영자 '<가 -'어디서나 사용할 수 있으며, 운영자 반면 가 '='에만 최상위 수준에 허용된다 (예를 들어, 명령 프롬프트에서 입력 한 완전한 표현 ) 또는 하나의 부분 식 중괄호로 묶은 식 목록에.
The question here은 함수 호출에서 사용될 때 차이점을 언급합니다. 그러나 함수 정의에서 정상적으로 작동하는 것 같다 :
a = function()
{
b = 2
x <- 3
y <<- 4
}
a()
# (b and x are undefined here)
을 수동이 the operator ‘=’ is only allowed at the top level
것을 언급 왜?
는 language definition에서 그것에 대해 아무것도 없다 (나열된 =
운영자, 어떤 수치도 없다!)
R-lang의 [10.4.2 중위 및 접두사 연산자] (http://cran.r-project.org/doc/manuals/R-lang.html#Infix-and-prefix-operators)에 언급되어 있습니다.),하지만 당신이 언급 한 도움말 항목에있는 것보다 훨씬 더 많이 말하지는 않습니다. –
당신이 인용 한 텍스트는 "최상위 수준 ** OR ** ** 하위 표현식의 중괄호 목록"이라고 말합니다. 하위 표현식의 중괄호 목록에서이를 사용하고 있습니다. 허용되는 것. – Andrie
최상위도 아니고 중괄호도 아닌 표현식을 찾으려면 큰 길을 가야합니다. 여기 하나 있습니다. 'try (x <- f())'는 괜찮지 만'try (x = f (x))'는 그렇지 않다. 대입 연산자를 사용하거나 중괄호를 추가하십시오. –