【发布时间】:2020-10-22 16:40:41
【问题描述】:
我认为我在这里的错误是对函数如何在 R 中运行的误解,但我确实担心这可能会给我带来一些奇怪的结果。
如果我在函数之外声明一个参数,它会覆盖函数调用中声明的所有参数。
x<- 6
example<- function(...){
print(x^2)
}
example()
返回 36。我可以接受。
但是,如果我再次运行该函数并声明变量,它将被忽略。
example(x =5)
仍然返回 36。
我能理解发生了什么,但我真的不明白为什么。在这种情况下使用 ... 不好的做法吗?
如果我的功能是
example<- function(x){
print(x^2)
}
它有效。
【问题讨论】:
-
相关,可能重复stackoverflow.com/q/5890576/680068 换句话说阅读手册:
?dots -
你可以试试:
example1 <- function(...){print(list(...)[["x"]]^2)}或example2 <- function(...){list2env(list(...), environment()); print(x^2)} -
谢谢 - 我看到了这些答案和下面的答案。我不认为这是重复的,因为我正在寻找正在发生的事情,并寻求最佳实践的指导。
标签: r