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

我想计算基于行均值的数据框的新变量。

例如:

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)。

而且当然
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))

关于r - dplyr-使用像rowmeans()这样的mutate(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33401788/

10-12 23:33