如何构造一个可以处理由名称和由=
符号分隔的值组成的参数的函数?
例如:
foo = myFun(HELLO = 3)
bar = myFun(Tintin = 5)
它构造:
foo = 3
names(foo) = "HELLO"
bar = 3
names(bar) = "Tintin"
当然,我可以用逗号分隔这两个参数,但这不是我的问题所在!
R中有许多功能都是这样的。
data.frame(a=1:5, babar=2:6)
cbind(jf=1:3, ij=4:6)
(我想解决方案可能与在函数参数中使用…
有关。)
答案 0 :(得分:4)
一个非常小的例子:
foo <- function(...){
list(...)
}
使用中:
> foo(x = 4)
$x
[1] 4
> foo(x = 4,y = 5)
$x
[1] 4
$y
[1] 5
如果你想要一个矢量,那么总是unlist
。
请注意,通过简单地扫描您引用的两个示例函数的代码,可以轻松快速地确定此技术。 data.frame
和cbind
都会在源代码的早期通过...
收集x <- list(...)
中的参数。