【发布时间】:2016-01-28 20:38:47
【问题描述】:
我在任何地方都找不到答案。
我想根据行的平均值计算数据框的新变量。
例如:
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))
没用。
你能给我一些建议吗?
问候
【问题讨论】:
-
rowMeans用于矩阵,而不是 args 向量。我建议data %>% mutate(c = Reduce("+",.)/length(.)) -
谢谢 - 它有效,但如何只选择特定的行(例如 p1 到 p32)?以及如何处理 NA?
-
您能否修改您的问题以说明您的意思?
-
好的,我做到了。现在清楚了吗? ;-)