为什么!字符串列表中的字符串不能按dplyr中的预期工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么!字符串列表中的字符串不能按dplyr中的预期工作相关的知识,希望对你有一定的参考价值。

我正在尝试使用! 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
答案

我们可以使用syms

library(dplyr)
a %>% 
  group_by(!!! rlang::syms(cols)) %>%
  summarize(count=n())

或使用group_by_at

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

以上是关于为什么!字符串列表中的字符串不能按dplyr中的预期工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 dplyr - R 检查组中的字符是不是全部相等

正则中的预判

dplyr 中的字符串操作/聚合

比较dplyr中的字符串

dplyr 句号字符“。”是啥意思?参考?

r 使用R中的dplyr过滤包含特定字符串的行