[英]How to make rowMeans of data frame where column name is same in r
我有下表
x | y | z | x | y | z
0 | 1 | 1 | 1 | 0 | 0
1 | 1 | 1 | 1 | 1 | 1
0 | 0 | 0 | 0 | 0 | 0
我只想对具有相同名称的列进行rowMeans。 由于我有三个不同的列名,因此我希望生成具有三个列的数据框,每个列代表具有相同名称的该列的rowMeans
所以基本上,我想跟随输出
x | y | z |
0.5 | 0.5 | 0.5 |
1 | 1 | 1 |
0 | 0 | 0 |
我们可以做split
sapply(split.default(df1, names(df1)), rowMeans)
# x y z
#[1,] 0.5 0.5 0.5
#[2,] 1.0 1.0 1.0
#[3,] 0.0 0.0 0.0
df1 <- structure(list(x = c(0L, 1L, 0L), y = c(1L, 1L, 0L), z = c(1L,
1L, 0L), x = c(1L, 1L, 0L), y = c(0L, 1L, 0L), z = c(0L, 1L,
0L)), .Names = c("x", "y", "z", "x", "y", "z"), class = "data.frame",
row.names = c(NA, -3L))
sapply(unique(names(df)), function(a) rowMeans(df[which(names(df) == a)]))
# x y z
#[1,] 0.5 0.5 0.5
#[2,] 1.0 1.0 1.0
#[3,] 0.0 0.0 0.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.