我希望有人能夠幫助我理解爲什麼mapply
函數在調用sum
函數時以及在調用mean
函數時的行爲有所不同。爲什麼mapply()的行爲有所不同,取決於所謂的函數?
我的問題是可能會更好通過查看此MWE(從https://nsaunders.wordpress.com/2010/08/20/a-brief-introduction-to-apply-in-r/部分地借用)
l1 <- list(a = c(1:10), b = c(11:20))
l2 <- list(c = c(21:30), d = c(31:40))
mapply(sum, l1$a, l1$b, l2$c, l2$d)
[1] 64 68 72 76 80 84 88 92 96 100
上面的代碼返回10倍的值,在各相應的元件的總和對象解釋的a,b,c和d。
下面的例子不以相同的方式工作:
mapply(mean, l1$a, l1$b, l2$c, l2$d)
[1] 1 2 3 4 5 6 7 8 9 10
在好像b,c和d中的後者的例子將被忽略和它只是計算的每個元素的平均值。
如果有人能幫助我理解這將是偉大的。
非常感謝!
這與'mapply'無關。見'sum'和'mean':他們在處理他們的論點時有不同的機制。你認爲'sum(1,2,3)'會返回什麼?那麼'意味着什麼(1,2,3)'? – nicola
謝謝尼科拉,現在這個便士終於落下了。 –