r - Dplyr 编写一个以列名作为输入的函数

标签 r dplyr

我正在编写一个要在 dplyr 中的多个列上使用的函数,但我无法将列名作为输入传递给 dplyr 的函数。

这是我想做的一个例子:

df<-tbl_df(data.frame(group=rep(c("A", "B"), each=3), var1=sample(1:100, 6), var2=sample(1:100, 6)))


example<-function(colname){
  df %>%
    group_by(group)%>%
    summarize(output=mean(sqrt(colname)))%>%
    select(output)
}
example("var1")

输出应该是这样的

df %>%
  group_by(group)%>%
  summarize(output=mean(sqrt(var1)))%>%
  select(output)

我发现了一些类似的问题,但没有任何问题可以直接应用于我的问题,因此不胜感激。我已经尝试了一些涉及 eval 的解决方案,但老实说我不知道​​我应该传递给 eval 的到底是什么。

最佳答案

这是您所期望的吗?

df<-tbl_df(data.frame(group=rep(c("A", "B"), each=3), var1=sample(1:100, 6), var2=sample(1:100, 6)))

example<-function(colname){
  df %>%
    group_by(group)%>%
    summarize(output=mean(sqrt(colname)))%>%
    select(output)
}
example( quote(var1) )
#-----
Source: local data frame [2 x 1]

    output
1 7.185935
2 8.090866

关于r - Dplyr 编写一个以列名作为输入的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29042460/

相关文章:

r - 使用 dplyr 0.3.02 中的 group_by 对数据帧进行分组后选择列时出错

rcpp - R session 中止

r - ggplot2 忽略scale_color_manual() 中的颜色顺序

rowMean 如果行通过测试

R如何通过测量与给定值的下一个不间断序列的距离来生成降序序列

r - 检查行在 R 中是否具有特定值

r - 构建函数以将自然中断 jenks 应用于我的 df 列时出错

r - R中具有不同颜色的直方图样图

R 规范的 dplyr 替换方式

python - 将 R broom/dplyr 问题转化为 Python