我没有找到类似的问题。让我们假设以下列表
a <- data.frame(number=1:10)
dat <- list(a, a*2, a*3)
number
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
[[2]]
number
1 2
2 4
3 6
4 8
5 10
6 12
7 14
8 16
9 18
10 20
[[3]]
number
1 3
2 6
3 9
4 12
5 15
6 18
7 21
8 24
9 27
10 30
我想知道计算每一行的平均值。因此,第一个应该是(1 + 2 + 3)/ 3,第二个应该是(2 + 4 + 6)/ 3,依此类推。我认为一些适用的方法是正确的方法,但是我不确定如何做到这一点。
答案 0 :(得分:1)
我假设您想从data.frame
中的所有dat
中逐行计算值的平均值?假设所有data.frame
具有相同的尺寸,则可以这样做
rowMeans(data.frame(dat))
# [1] 2 4 6 8 10 12 14 16 18 20
答案 1 :(得分:0)
您是对的,apply是解决方案之一。
a <- c(number=1:10)
dat <- list(a, a*2, a*3)
sapply(dat, function(x) mean(head(x, 3)) )
a <- data.frame(number=1:10)
dat <- list(a, a*2, a*3)
sapply(dat, function(x) mean(head(x[,1], 3)) )