R功能不会打印列表中各个项目的总和

时间:2017-03-19 22:10:01

标签: r list printing

我有一个名为“thalachbysite”的列表列表,里面有4个列表,每个内部列表都有几百个项目。

我想得到每个内部列表的总和,所以我尝试了:

for (i in 1:length(thalachbysite)) {
  sum(thalachbysite[[i]])
}

我的输出完全是空的 - 它接受没有错误或警告的输入,但我的屏幕仍为空白。任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:3)

我可以看出为什么这会令人困惑,但基本上,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函数,例如lapplysapply

lapply(l, sum)
$x
[1] 55

$y
[1] 155

sapply(l, sum)
  x   y 
 55 155