为什么会这样!!!在字符串列表中,无法按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())