如何使用dplyr获取数据表两列的平均值?例如,如果我的数据如下:
dt <- data.table(A=1:5, B=c(1,4,NA,6,8))
我想创建一个新列“Avg”,它是每行 A 列和 B 列的平均值:
dt %>% mutate(Avg=mean(c(A, B), na.rm=T))
但是这段代码没有给我正确的结果。这个怎么做?非常感谢。
最佳答案
如果您想使用 dplyr 来实现此目的,我建议使用函数 rowwise()
:
R> library(dplyr)
R> dt <- data.table(A=1:5, B=c(1,4,NA,6,8))
R> j <- dt %>% rowwise() %>% mutate(Avg=mean(c(A, B), na.rm=T))
R> j
Source: local data frame [5 x 3]
Groups: <by row>
A B Avg
(int) (dbl) (dbl)
1 1 1 1.0
2 2 4 3.0
3 3 NA 3.0
4 4 6 5.0
5 5 8 6.5
关于r - 如何使用 dplyr 获得两列的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34169190/