【问题标题】:Function to pass parameter to perform group_by in R [duplicate]传递参数以在R中执行group_by的函数[重复]
【发布时间】:2019-03-19 17:33:53
【问题描述】:

我正在尝试编写一个函数并传入 2 个参数。我收到一个错误,该函数无法识别第二个参数。

library(dplyr)

Test2 <- function(df, kk) {
  xx1 <- group_by_at(mtcars, vars(mpg, cyl, kk)) %>%
      summarise(FreqOG = length(cyl))
  xx1 <- data.frame(xx1)
}

yy1 <- Test2(mtcars,hp)

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    您必须 enquo 变量并使用 !!运营商:

    library(dplyr)
    Test2 <- function(df,kk) {
       kk<-enquo(kk)
       xx1 <- group_by_at(mtcars,vars(mpg,cyl,!!kk)) %>% summarise(FreqOG = length(cyl))
       xx1 <- data.frame(xx1)}
    
    yy1 <- Test2(mtcars,hp)
    

    这个问题可能会提供更多背景信息:Why is enquo + !! preferable to substitute + eval

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 2016-01-22
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 2015-12-13
      相关资源
      最近更新 更多