Добавление префикса к имени столбца с использованием значения другого столбца с использованием dplyr - PullRequest
1 голос
/ 01 ноября 2019

Существует поток для «Добавление префикса к именам столбцов», но решения ограничиваются добавлением фиксированных строк в качестве префикса или постфикса. Можно ли добавить значение другого столбца в качестве префикса к имени столбца?

Например, у меня есть столбец с именем sum, а другой столбец с именем time_period со значениями yearmonth, в зависимости от кадра данных. Я надеюсь динамически создавать новые столбцы, такие как year_sum и month_sum. Решение dplyr было бы идеальным, но не обязательным.

Уже пробовал следующий поток и связанные потоки: Добавление префикса к именам столбцов

df <- tibble(sum = c(150, 175, 200), time_period = c('year', 'year', 'year')) %>%
        rename_at(vars(sum), function(x) paste0(time_period, x)) %>%
        glimpse()

Я получаю следующую ошибку:

Ошибка в paste0 (time_period, x): объект 'time_period' не найден

Я ожидаю, что столбец sum будет переименован в year_sum.

1 Ответ

0 голосов
/ 01 ноября 2019

Вот обходное решение. Он только смотрит на первый ряд time_period и принимает то значение, которое он там найдет:

df %>% {rename_at(., vars(sum), function(x) paste(pull(., time_period)[1], x, sep = "_"))}

# A tibble: 3 x 2
  year_sum time_period
     <dbl> <chr>      
1      150 year       
2      175 year       
3      200 year 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...