如何避免在 tidyr::complete() 中输入变量名

问题描述 投票:0回答:1

在 tidyr::complete 中,我必须输入变量名称,如何避免?实际上,变量有很多,一一输入很无聊...有人可以帮忙吗?谢谢!

library(tidyverse)
    raw_df <- data.frame(cat=c('A','B','C'),sub_category=c('1','2','3'))

输入变量名,代码运行良好

 raw_df %>% tidyr::complete(cat,sub_category)

下面的代码无法工作——我希望的输入方式

 raw_df %>% tidyr::complete()
tidyverse tidyr
1个回答
0
投票

稍微不同的方法是使用

expand_grid
并通过匿名函数传入使用
!!!
解包的数据帧的所有列。这可行,但其他人可能有更简单的建议方法!

library(tidyverse)

raw_df <- data.frame(cat=c('A','B','C'),sub_category=c('1','2','3'))

raw_df |>
  (\(df) expand_grid(!!!df))()
#> # A tibble: 9 × 2
#>   cat   sub_category
#>   <chr> <chr>       
#> 1 A     1           
#> 2 A     2           
#> 3 A     3           
#> 4 B     1           
#> 5 B     2           
#> 6 B     3           
#> 7 C     1           
#> 8 C     2           
#> 9 C     3
© www.soinside.com 2019 - 2024. All rights reserved.