2012-03-07 15 views

回答

5

編輯:固定參數順序

lapply(x,f,b=3)(或sapply()

+2

好吧,'lapply(x,f,b = 3)'更有可能工作;-) – Tommy 2012-03-08 00:12:57

3

在這種情況下sapply工作正常(如@BenBolker回答),但mapply東西也是一個很好的選擇,而實際上「最好」 的解決方案時,既ab變化:

f <- function(a,b) a+b 
x <- as.list(11:13) # you said you had a list... 

# One argument (b) is fixed 
sapply(x, f, 3) # 14 15 16 
mapply(f, x, 3) # 14 15 16 

# Both arguments vary 
y <- 101:103 
mapply(f, x, y) # 112 114 116 
4

Dependi納克你的函數,你有時可以直接與載體使用它, 作爲第一個參數

f <- function(a,b) a+b 
f(1:10,2) 

,或者如果它不工作(如果該函數假定 第一個參數是一個單一的數字,而不是到矢量), 您可以將其矢量化爲 (Vectorize只是隱藏對lapply的呼叫)。

f <- Vectorize(f) 
f(1:10,2) 
相關問題