假设我有一个数据集。
w=c(5,6,7,8)
x=c(1,2,3,4)
y=c(1,2,3,5)
length(y)=4
z=data.frame(w,x,y)
这将返回
w x y
1 5 1 1
2 6 2 2
3 7 3 3
4 8 4 5
我想要第 5 行,只平均第 2 行和第 3 行。
w x y
1 5 1 1
2 6 2 2
3 7 3 3
4 8 4 5
5 6.5 2.5 2.5
我将如何解决这个问题?
rowMeans
有很多示例,但我希望对所有列求平均值,并且仅针对特定行求平均值。
答案 0 :(得分:1)
您可以将 colMeans
用作:
rows <- c(2, 3)
rbind(z, colMeans(z[rows,]))
# w x y
#1 5.0 1.0 1.0
#2 6.0 2.0 2.0
#3 7.0 3.0 3.0
#4 8.0 4.0 5.0
#5 6.5 2.5 2.5
答案 1 :(得分:1)
这行得通吗:
library(dplyr)
z %>% bind_rows(sapply(z[2:3,], mean))
w x y
1 5.0 1.0 1.0
2 6.0 2.0 2.0
3 7.0 3.0 3.0
4 8.0 4.0 5.0
5 6.5 2.5 2.5