如何使用整洁的评估与列名作为字符串?

史蒂夫·里多(Steve Riedo)

我已经阅读了大多数有关使用dplyr进行整洁评估和编程的文档,但是无法解决这个(简单)问题。

我想用dplyr进行编程,并将列名称作为字符串提供给函数。

df <- tibble(
  g1 = c(1, 1, 2, 2, 2),
  g2 = c(1, 2, 1, 2, 1),
  a = sample(5),
  b = sample(5)
)

my_summarise <- function(df, group_var) {
  df %>%
    group_by(group_var) %>%
    summarise(a = mean(a))
}

my_summarise(df, 'g1')

这给了我Error : Column 'group_var' is unknown

为了使这项工作有效,我必须在my_summarise函数内部进行哪些更改?

阿克伦

我们也可以用ensym!!

my_summarise <- function(df, group_var) {


  df %>%
    group_by(!!rlang::ensym(group_var)) %>%
    summarise(a = mean(a))
   }

my_summarise(df, 'g1')

或另一个选择是 group_by_at

my_summarise <- function(df, group_var) {


      df %>%
        group_by_at(vars(group_var)) %>%
        summarise(a = mean(a))
       }

my_summarise(df, 'g1')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用dplyr以新列名作为字符串重命名选定的列

如何使用列名作为字符串的数据框在python中制作稀疏矩阵

列名称存储在字符串中时的整洁评估

使用列名作为要替换的字符串值执行字符串替换

ggplot和dplyr以及列名作为字符串

LINQ-使用列名作为字符串参数访问列

如何获得具体的类名作为字符串?

如何获取类名作为字符串?

PostgreSQL使用变量名作为字符串文字

如何在 Python 中使用变量名作为字符串

如何使用类名和函数名作为字符串调用Scala函数

如何使用变量名作为字符串访问变量

如何使用泛型的类名作为结果类型的字符串值

大熊猫以新的列名作为字符串分配

在dplyr的重命名功能中输入新的列名作为字符串

我不希望列名作为不同字母的字符串

如何使用列名作为变量?

如何将 os.path 的文件名作为字符串返回?

如何获得一个函数名作为字符串?

如何将 Spark 列的别名作为字符串获取?

如何在 C# 中将命名空间的全名作为字符串获取?

c ++:如何运行以字符串和文件名作为参数的程序?

如何从 C# 中的 DbContext 获取任何表名作为字符串的表的 DbSet 对象

如何仅从第一个元素中提取类名作为字符串?

在if_else和df $中使用rlang提供变量名作为字符串

在包装函数中使用 dplyr 将变量名作为字符串返回

如何在熊猫数据框中使用字符串作为列名

如何使用列名(字符串)作为输入在R函数内部制作ggplot2图?

MYSQL:如何使用串联字符串作为列名遍历表列?