【问题标题】:How to get sum of observations of a variable using sapply/lapply for a list of data frames?如何使用 sapply/lapply 获取变量的观察值总和以获取数据框列表?
【发布时间】:2016-10-20 13:55:12
【问题描述】:

我想获取列表中每个数据框中的变量值的总和。我有类似的东西:

l <- list(a = mtcars, b = mtcars, c = mtcars)  
v <- sapply(l, function(x)sum(l$x$disp))

我希望得到一个包含总和的命名向量。相反,我只得到零。我的猜测是只有数据框的名称被传递给函数。

我尝试了其他函数并 lapply 但每次我得到一个带有 Null 或零的列表/向量。可以使用 for 语句来完成此任务,但在我的情况下,我的列表包含数据框列表和 R 中的嵌套循环似乎不是一个好的选择。 你有什么想法我想念的吗? 提前致谢。

【问题讨论】:

  • 你在 sapply 中调用的是 'list' 而不是 'l'。

标签: r list lapply sapply


【解决方案1】:

我认为你需要,

sapply(l, function(x) sum(x["disp"]))

#  a      b      c 
#7383.1 7383.1 7383.1 

或者,如果您需要所有列表中 disp 变量的完整总和,您可以将其完全包装在 sum

sum(sapply(l, function(x) sum(x["disp"])))

#[1] 22149.3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 2018-07-09
    • 2017-12-23
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多