我试图在一堆变量中捕获一个summarize_at操作。这是一个愚蠢的例子:
库(dplyr)库(stringr)
星球%>% summarise_at(c(“hair_color”,“skin_color”), …
我想这是一个bug,但与此同时你可以做到
myfun <- function(df, var) { df %>% summarize_at(c("hair_color", "skin_color"), funs(sum(if_else(str_detect(., "brown"), 1, !! enquo(var)), na.rm = TRUE))) } myfun(starwars, birth_year) # A tibble: 1 x 2 # hair_color skin_color # <dbl> <dbl> # 1 2399. 3123. # Warning message: # funs() is soft deprecated as of dplyr 0.8.0 # please use list() instead # # Before: # funs(name = f(.) # # After: # list(name = ~f(.))
作为一种解决方法。你得到一个软折旧警告,但你不应该遵循那里的建议,因为这个错误位于你的功能的某个地方。