Я использую данные здесь (в частности, таблицы cpi
и grosses
), и я хотел бы вычислить каждый из столбцов, содержащих суммы в долларах (обозначенные как «брутто» или price 'в их именах) с точки зрения их стоимости в 2020 году. Затем я хотел бы упорядочить эти столбцы сразу после их совпадения.
Следующий метод был вдохновлен сообщением здесь :
cpi_recent <- cpi %>% # pulls most recent cpi in the tibble
select(cpi) %>%
slice_tail() %>%
pull()
grosses_adj <- grosses %>%
mutate(year_month = floor_date(week_ending, 'month')) %>%
left_join(cpi, 'year_month') %>%
mutate(across(contains(c('gross', 'price')),
list(adj = ~ cpi_recent/cpi * .))) %>% # creates new col in 2020 dollars w/ _adj suffix
select(-year_month, -cpi)
Однако по умолчанию все новые столбцы будут размещены после последнего столбца .
Есть ли способ динамически упорядочить новые столбцы непосредственно после соответствующего столбца , например: gross_1, gross_1_adj, price_2, price_2_adj
, эт c.? Конечно, использовать select()
вручную тривиально, но я предполагаю, что есть способ динамически ссылаться на эти столбцы, используя mutate()
и аргумент .after
.