首页 > 解决方案 > 在 R 中将列名作为变量传递的问题

问题描述

我正在尝试编写一个函数,以便更轻松地创建数据框中的各种数据摘要。到目前为止,我一直以以下格式手动编写所有这些内容:

issue_summary <- df %>%
  group_by(issue) %>%
  summarise(mean=mean(stdng),n())

其中“问题”是数据框“df”中列的名称。为了允许我即时生成这些,而不是为数据集中的每个问题写一个,我尝试编写以下函数,但它不起作用:

iss_summary <- function(df, x) {
  df %>%
    group_by(x) %>%
    summarise(mean=mean(stdng),n())
}

当我使用 iss_summary(df, issue) 运行它时,我得到:“错误:列x未知”。我尝试将第 3 行更改为 group_by(paste0(x)),但运行它我得到:“paste0(x) 中的错误:找不到对象'问题'”

如果我将 paste0 版本作为 iss_summary(df, df$issue) 运行,它可以工作,但是必须以这种方式输入它很烦人,我想了解为什么会这样,但原始版本和我尝试的修复都不起作用。提前致谢!

标签: rdplyr

解决方案


推荐阅读