Потому что все, что вы передаете в ...
, остается в ...
.Переменные, которые вы передаете и которые явно не фиксируются параметром, не расширяются в локальную среду....
следует использовать для значений, с которыми вашей текущей функции вообще не нужно взаимодействовать, но некоторые более поздние функции нужно использовать, чтобы их можно было легко передавать внутри ...
.Он предназначен для сценария, подобного
ss <- function(x) {
x
}
tt <- function(...) {
return(ss(...))
}
tt(x=2)
Если вашей функции требуется определить переменную x
, это должен быть параметр
tt <- function(x, ...) {
return(x)
}
Если вы действительно хотите расширить точкив текущую среду (и я настоятельно рекомендую, чтобы вы этого не сделали), вы можете сделать что-то вроде
tt <- function(...) {
list2env(list(...), environment())
return(x)
}