如何使用 sapply/lapply 获取数据框列表的变量观察总和?

How to get sum of observations of a variable using sapply/lapply for a list of data frames?

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

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

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

我尝试了其他函数和 lapply,但每次我得到一个带有空值或零的 list/vector。可以为此任务使用 for 语句,但在我的例子中,我有包含数据框列表的列表,R 中的嵌套循环似乎不是一个好的选择。 你知道我错过了什么吗? 提前致谢。

我觉得你需要,

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