여기서 무슨 일이 일어나는지 알아내는 데 도움이 필요합니다.3 개의 도트 "..."인수를 사용하는 이상한 버그
g <- function(x, y=NULL, z=NULL) invisible(NULL)
h <- function(...) {
args <- as.list(match.call(g))[-1]
print(args)
## lapply(args, eval)
}
f <- function(...) {
h(...)
}
기능 h()
는 평가되지 않은 인수라는 이름의 목록을 인쇄하고 인수를 평가하는 을 시도합니다.
z=3
및 z=-3
을 사용하여 f
을 호출하면 어떻게되는지 확인하십시오.
> f(1, z=3)
$x
[1] 1
$z
[1] 3
> f(1, z=-3)
$x
[1] 1
$z
..2
이것은 무엇입니까 ..2
? h(1, z=-3)
은 다른 출력을 생성합니다.
> h(1, z=-3)
$x
[1] 1
$z
-3
실제로 R 언어 정의의 일부일 때 이해가되지 않을 때 버그라고 부르는 것은 다소 가혹합니다. – MrFlick