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