0
我有一個名爲「thalachbysite」的列表,列表中有4個列表,每個內部列表有幾百個項目。R函數不會打印列表中的單個項目的總和
我想每個內部列表的總和,所以我嘗試:
for (i in 1:length(thalachbysite)) {
sum(thalachbysite[[i]])
}
我的輸出完全是空的,但 - 它接受,沒有錯誤或警告的輸入,但我依然黑屏。誰能解釋爲什麼?
我有一個名爲「thalachbysite」的列表,列表中有4個列表,每個內部列表有幾百個項目。R函數不會打印列表中的單個項目的總和
我想每個內部列表的總和,所以我嘗試:
for (i in 1:length(thalachbysite)) {
sum(thalachbysite[[i]])
}
我的輸出完全是空的,但 - 它接受,沒有錯誤或警告的輸入,但我依然黑屏。誰能解釋爲什麼?
我可以看到爲什麼這是令人困惑的,但基本上,for
循環返回NULL。所以,如果你把你的sum
在一個循環中,你需要明確地打印或返回值,例如打印:
l <- list(x = 1:10, y = 11:20)
for(i in 1:length(l)) {print(sum(l[[i]]))}
[1] 55
[1] 155
這就是說 - 一個for
循環不是在這種情況下,一個很好的解決方案。最好使用apply
功能,如lapply
或sapply
:
lapply(l, sum)
$x
[1] 55
$y
[1] 155
sapply(l, sum)
x y
55 155