1
为什么这不起作用?或者只是R的工作方式?将多个参数传递给R中的匿名函数
感谢 JJ
a <- c(1,2,3)
b <- 5
lapply(a, function(x) print(x)) # works
lapply(a, function(x,b) print(b)) # doesn't work.
I get --
Error in FUN(c(1, 2, 3)[[1L]], ...) :
argument "b" is missing, with no default
这也依赖于b在全球环境中。除了把你放在哪里以外,我给出的第二种解决方案没有什么不同。通常我们正在处理来自glob的对象。 ENV。所以预计b会来自那里。 – 2012-04-28 15:10:21
为了说明我认为你的解决方案是这样的:'lapply(a,function(x,y)print(y),y = b)'。看看它和我的#2基本上是一样的。可读性最好不要将匿名函数的参数调用为尽可能传递给它的对象。 – 2012-04-28 15:18:53
嗯。你说得对,这两起案件并没有我最初想象的那么不同。我仍然认为使用lapply的'...'传递它比使用默认匿名函数传递它更合适。 – 2012-04-28 16:01:45