【发布时间】:2021-01-29 15:59:16
【问题描述】:
考虑这个简单的例子:
mytib <- tibble(city_name1 = c('nyc', 'DC'),
city_name2 = c('US', 'US'),
planet_name1 = c('earth', 'moon'),
planet_name2 = c('solar', 'solar'))
# A tibble: 2 x 4
city_name1 city_name2 planet_name1 planet_name2
<chr> <chr> <chr> <chr>
1 nyc US earth solar
2 DC US moon solar
我正在尝试自动创建一些使用tidyr 的简单变量。具体来说,我只是为每个主题添加了两个字符变量_name1 和_name2。如下:
> mytib %>%
+ tidyr::unite(complete_city,
+ c('city_name1', 'city_name2'), remove = FALSE) %>%
+ tidyr::unite(complete_planet,
+ c('planet_name1', 'planet_name2'), remove = FALSE)
# A tibble: 2 x 6
complete_city city_name1 city_name2 complete_planet planet_name1 planet_name2
<chr> <chr> <chr> <chr> <chr> <chr>
1 nyc_US nyc US earth_solar earth solar
2 DC_US DC US moon_solar moon solar
问题是我想自动化这个。也就是说,循环主题city 和planet。我怎样才能做到这一点?我尝试了以下但没有成功:
for(topic in c('city', 'planet')){
mytib <- mytib %>%
tidyr::unite('complete_{{topic}}',
c('{{topic}}_name1', '{{topic}}_name2'), remove = FALSE)
}
谢谢!
【问题讨论】: