r-将粘贴命令与dplyr一起使用

  • 本文关键字:dplyr 一起 命令 r dplyr
  • 更新时间 :
  • 英文 :


我正在尝试使用粘贴命令,以便将字符串的某些部分从dyply粘贴到命令group_by中。这看起来像是没有粘贴的正常代码。

library(dplyr)
DATA1<-DATA%>%
dplyr::group_by(id_n,gross_income)%>%
dplyr::summarize(gross_i=sum(gross_i)

所以现在我想使用粘贴命令,并尝试使用这行代码。

query_type1<-"id_n,gross_income"

下一步是在上面的代码中实现这行代码。

DATA1<-DATA%>%
dplyr::group_by(query_type1)%>%
dplyr::summarize(gross_i=sum(gross_i)

但不幸的是,这并没有给我带来好的结果。有人能帮我修复这行代码吗?

像这样尝试

library(tidyverse)
gr <- syms(c("vs", "am"))
mtcars %>% 
group_by(!!!gr) %>% 
summarise(sum_mpg = sum(mpg))
#> `summarise()` regrouping output by 'vs' (override with `.groups` argument)
#> # A tibble: 4 x 3
#> # Groups:   vs [2]
#>      vs    am sum_mpg
#>   <dbl> <dbl>   <dbl>
#> 1     0     0    181.
#> 2     0     1    118.
#> 3     1     0    145.
#> 4     1     1    199.

由reprex包于2021-01-12创建(v0.3.0(

另一个解决方案是在tidyverse中使用rlang包。CCD_ 2";撤资";表达式,这意味着它可以接受值(不需要加引号(,并返回描述如何生成值的R表达式。称为"CCD_;未标记的拼接";,获取一个参数列表,并将它们插入!!!的位置

library(tidyverse)
gvars <- exprs(gear, carb)
mtcars %>% 
group_by(!!!gvars)

正如其他人已经建议的那样,将列名作为向量,而不是一个逗号分隔的字符串。

query_type1<- c("id_n","gross_income")

然后可以在group_by:中使用across

library(dplyr)
DATA%>%
group_by(across(query_type1)) %>%
summarize(gross_i=sum(gross_i)

最新更新