r - 如何使用 dplyr 获得两列的平均值?

标签 r dplyr mean

如何使用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/

相关文章:

r - 使用 count()、aggregate()、data.table() 或 dplyr() 汇总数据(均值、标准差)

python - 将 MATLAB 函数转换为 python

r - 搜索推特并通过hashtag获取推文,最大化返回搜索结果数量

python - 计算第一个数字相似的所有元组值的平均值

r - 安装Rcartogram程序包-错误消息

R dplyr 选择两个独立事件之间的最小日期差行

r - 将数据表减去数据的子集

r - Map() 和 dplyr 连接

sql - 为什么我的日期字段从 SQL 数据库作为 double 返回到 R 中

r - 基于将特定行名称与列名称匹配的数据框设置值