【问题标题】:R function won't print sums of individual items in listsR函数不会打印列表中单个项目的总和
【发布时间】:2017-03-19 22:10:00
【问题描述】:

我有一个名为“thalachbysite”的列表列表,其中包含 4 个列表,每个内部列表都有数百个项目。

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

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

虽然我的输出完全是空的 - 它接受没有错误或警告的输入,但我的屏幕仍然是空白的。谁能解释一下为什么?

【问题讨论】:

    标签: r list printing


    【解决方案1】:

    我知道为什么这是令人困惑的,但基本上,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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多