如何使用 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
我想获取列表中每个数据框中变量值的总和。我有类似的东西:
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