r - 在函数中使用 dplyr group_by

标签 r function group-by dplyr nse

我正在尝试在本地函数中使用 dplyr 的 group_by,例如:

testFunction <- function(df, x) {
  df %>%
group_by(x) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}

testFunction(iris, Species)

我得到一个错误“...未知变量分组依据:x” 我试过 group_by_ 它给了我整个数据集的摘要。 有人知道我该如何解决这个问题吗?

提前致谢!

最佳答案

这是使用来自 dplyr 的新 enquo 的一种方法,其中 enquo 获取字符串并转换为 quosuregroup_bymutate 中通过取消引号(UQ!!)进行评估总结

library(dplyr)
testFunction <- function(df, x) {
 x <- enquo(x)
  df %>%
    group_by(!! x) %>%
     summarize(mean.Petal.Width = mean(Petal.Width))
 }

testFunction(iris, Species)
# A tibble: 3 x 2
#     Species mean.Petal.Width
#      <fctr>            <dbl>
#1     setosa            0.246
#2 versicolor            1.326
#3  virginica            2.026

关于r - 在函数中使用 dplyr group_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659943/

相关文章:

r - R 中的 C5.0 机器学习,测试数据准确率 100%

r - 范围内的数据框查找值并返回不同的列

c - 通过 1 个函数用不同的数据类型填充数组

function - 如何定义返回 map 的函数

MYSQL,多列分组

r - 将传播数据添加到 R 中的点图

python - R 的原始关键字

r - 使用多列作为参数应用函数,函数返回一个 data.frame

mysql group byyear() 的时间戳和foreign_id按时间戳排序

mysql - SQL,计算多个模块出现的天数