Функция R с использованием труб - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь создать функцию, которая использует каналы из пакета 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 

1 Ответ

0 голосов
/ 30 ноября 2018

Вам нужен !! на 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...