从所有列的特定行的平均值创建一个新行

时间:2021-01-20 09:20:37

标签: r

假设我有一个数据集。

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 有很多示例,但我希望对所有列求平均值,并且仅针对特定行求平均值。

2 个答案:

答案 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
相关问题