1

我正在尝试构建一个使用dplyr包中的管道的函数,但它不起作用。

有人可以帮我理解为什么我会收到错误消息吗?谢谢

udf_ctable <- function(x){
  mtcars %>% group_by(x) %>% summarize(n=n())
  }
udf_ctable(cyl)

 Error in grouped_df_impl(data, unname(vars), drop) : 
  Column `x` is unknown 
4

1 回答 1

8

你需要!!beore the x,并调用"cyl"

udf_ctable <- function(x){
  mtcars %>% group_by(!!x) %>% summarize(n=n())
}
udf_ctable("cyl")

在这里了解更多关于非标准评估的信息dplyr

或者,感谢@IceCreamToucan:

udf_ctable <- function(x){
  x <- enquo(x) # quosure of x inside the function
  mtcars %>% group_by(!!x) %>% summarize(n=n()) # !! lets dplyr evaluate x
}
udf_ctable(cyl)
于 2018-11-30T13:44:28.220 回答