为什么会这样!!!在字符串列表中,无法按dplyr中的预期工作

为什么会这样!!!在字符串列表中,无法按dplyr中的预期工作,r,dplyr,tidyr,R,Dplyr,Tidyr,我正在尝试使用!!!tidyr的操作员 以下代码不起作用: library(tidyr) library(dplyr) a = data.frame(x=c(1,1,2,3),y=c(11,11,22,33),z=c(111,111,111,222)) cols = c('x','z') a %>% group_by(!!!cols) %>% summarize(count=n()) 我希望输出与以下内容相同: a %>% group_by(x,z) %>% sum

我正在尝试使用!!!
tidyr的操作员

以下代码不起作用:

library(tidyr)
library(dplyr)

a = data.frame(x=c(1,1,2,3),y=c(11,11,22,33),z=c(111,111,111,222))

cols = c('x','z')
a %>% group_by(!!!cols) %>% summarize(count=n())
我希望输出与以下内容相同:

a %>% group_by(x,z) %>% summarize(count=n())
# # A tibble: 3 x 3
# # Groups:   x [3]
#       x     z count
#   <dbl> <dbl> <int>
# 1     1   111     2
# 2     2   111     1
# 3     3   222     1
a%%>%group\u by(x,z)%%>%summary(count=n())
##tibble:3 x 3
##组:x[3]
#x z计数
#     
# 1     1   111     2
# 2     2   111     1
# 3     3   222     1

我们可以使用
syms
将字符串转换为符号,然后进行求值(
!!!
)和
总结

library(dplyr)
a %>% 
  group_by(!!! rlang::syms(cols)) %>%
  summarize(count=n())
# A tibble: 3 x 3
# Groups:   x [3]
#      x     z count
#  <dbl> <dbl> <int>
#1     1   111     2
#2     2   111     1
#3     3   222     1
或者在

a %>%
  group_by_at(cols) %>%
  summarize(count=n())

非常感谢您的快速回答:-)
a %>%
  group_by_at(cols) %>%
  summarize(count=n())