【发布时间】:2014-02-18 20:08:47
【问题描述】:
如果我不知道列名但想通过变量指定它,如何将列名传递给 dplyr?
例如这有效:
require(dplyr)
df <- as.data.frame(matrix(seq(1:9),ncol=3,nrow=3))
df$group <- c("A","B","A")
gdf <- df %.% group_by(group) %.% summarise(m1 =mean(V1),m2 =mean(V2),m3 =mean(V3))
但这不是
require(dplyr)
someColumn = "group"
df <- as.data.frame(matrix(seq(1:9),ncol=3,nrow=3))
df$group <- c("A","B","A")
gdf <- df %.% group_by(someColumn) %.% summarise(m1 =mean(V1),m2 =mean(V2),m3 =mean(V3))
【问题讨论】:
-
是的,可能。我最终在 dplyr 链之前重命名了组列。类似
colnames(df)[which(colnames(df)==someColumn)] <- "group" -
值得注意的是,“正确”的答案可能与 dplyr 0.7.0 下的解决方案不同。
标签: r group-by columnname dplyr