2
파이프의 네임 스페이스를 사용하여 함수를 호출 할 때 코드의 마지막 줄의 동작이 다른 이유와 실제로 오류 메시지가 무엇을 의미하는지 설명해주십시오. :함수의 우선 순위가 파이핑에서 네임 스페이스로 호출되었습니다.
library(magrittr)
1:5 %>% cumsum
#### [1] 1 3 6 10 15
1:5 %>% cumsum()
#### [1] 1 3 6 10 15
1:5 %>% base::cumsum()
#### [1] 1 3 6 10 15
1:5 %>% (base::cumsum)
#### [1] 1 3 6 10 15
1:5 %>% base::cumsum
#### Error in .::base : unused argument (cumsum)
내가 진정으로는 가장 높은 우선 순위가 멀리 떨어져 특별한 사업자, 네임 스페이스 연산자 ::
입니다 operator precedence rules 상태 때문에 일 것이라고 생각했다.
감사합니다.
고마워요.하지만이 원시 함수가 정확히 무엇을하는지는 나에게 여전히 불분명합니다 ... 패키지의 네임 스페이스를 지정할 때 동일한 함수가 아니라고 말합니까? – agenis
일종의, 예. '()'를 쓰지 않으면'네임 스페이스 '에서 그것을 호출하는 것에 상관없이 인자를 전달하는 의미에서 함수로 취급되지 않습니다. 변수의 이름을 입력하면 인쇄됩니다. 이제 함수에 대한 몇 가지 설명이 출력되고, 따라서 인자를 전달할 것을 기대하지 않고 시도하면 오류가 발생합니다. –
그것은'str (cumsum)'과'str (base :: cumsum)'을 실행할 때 똑같은 결과를 낳기 때문에 이상합니다. 우연히이 주제를 읽을 의사가 있습니까? – agenis