本文介绍了dplyr - 像 rowmeans() 一样使用 mutate()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在任何地方都找不到答案.

I can't find the answer anywhere.

我想根据行的平均值计算数据框的新变量.

I would like to calculate new variable of data frame which is based on mean of rows.

例如:

data <- data.frame(id=c(101,102,103), a=c(1,2,3), b=c(2,2,2), c=c(3,3,3))

我想使用 mutate 来创建变量 d,它是 a、b 和 c 的平均值.我希望能够通过以 d=mean(a,b,c) 的方式选择列来实现这一点,而且我还需要使用变量范围(如在 dplyr 中)d=mean(a:c).

I want to use mutate to make variable d which is mean of a,b and c. And I would like to be able to make that by selecting columns in way d=mean(a,b,c), and also I need to use range of variables (like in dplyr) d=mean(a:c).

当然还有

mutate(data, c=mean(a,b))

mutate(data, c=rowMeans(a,b))

不起作用.

你能给我一些提示吗?

问候

推荐答案

您正在寻找

data %>%
    rowwise() %>%
    mutate(c=mean(c(a,b)))

#      id     a     b     c
#   (dbl) (dbl) (dbl) (dbl)
# 1   101     1     2   1.5
# 2   102     2     2   2.0
# 3   103     3     2   2.5

library(purrr)
data %>%
    rowwise() %>%
    mutate(c=lift_vd(mean)(a,b))

这篇关于dplyr - 像 rowmeans() 一样使用 mutate()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 21:07