给定一个数据框,除了最后一列外,所有列都是数字值,如何计算行平均值?
在此示例中,我使用所有列,包括我想要省略的 name
列。
df <- as.data.frame(matrix(1:40, ncol=10)) %>%
mutate(name=LETTERS[1:4]) %>%
mutate(mean=rowMeans(.))
期望的数据框输出:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 mean name
1 1 5 9 13 17 21 25 29 33 37 19 A
2 2 6 10 14 18 22 26 30 34 38 20 B
3 3 7 11 15 19 23 27 31 35 39 21 C
4 4 8 12 16 20 24 28 32 36 40 22 D
apply
函数来实现(例如,apply(df[, 1:10], 1, mean)
)。 - Benjamindplyr
,只需执行df$Mean <- rowMeans(df[-ncol(df)])
就可以了。如果您坚持使用dplyr
,我认为惯用的方法应该是类似于df %>% select(-ncol(df)) %>% mutate(Mean = rowMeans(.))
。 - David Arenburgdplyr
建议会从最终结果中删除name
,而不是匹配OP所需的输出。 - Steven BeauprérowMeans
而打这么多字太麻烦了。 - David Arenburg