Переименовать данные столбца в r - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть список наблюдений в одном столбце, который я хотел бы переименовать. dataframe показано ниже. В столбце GEO есть 40 различных имен, которые я хотел бы переименовать. Я создал еще один список с 40 альтернативными именами, которые я хотел бы использовать. Хотя у меня есть тысячи наблюдений, у меня там только 40 разных имен. Очень ценю любую помощь!

DataFrame

**Code to Reproduce**

library(cansim)
library(dplyr)

HPI_LIST <- c("v111955442", "v111955445",   "v111955448",   "v111955451",   "v111955454",   "v111955457",   "v111955460", "v111955463", "v111955466",   "v111955469",   "v111955472",   "v111955475",   "v111955478",   "v111955481",   "v111955484",   "v111955487",   "v111955490",   "v111955493",   "v111955496",   "v111955499",   "v111955502",   "v111955505",   "v111955508",   "v111955511",   "v111955514",   "v111955517",   "v111955520",   "v111955523",   "v111955526",   "v111955529",   "v111955532",   "v111955535",   "v111955538",   "v111955541",   "v111955544",   "v111955547",   "v111955550",   "v111955553",   "v111955556",   "v111955559")

NewHPIData <- get_cansim("18-10-0205-01")

NewHPI <- NewHPIData %>% filter(VECTOR %in% HPI_LIST, REF_DATE > 2018) %>% 
          arrange((COORDINATE)) %>% 
          select(REF_DATE, GEO, VALUE) %>% mutate(VALUE = VALUE / 100) %>%
          arrange(GEO)

Я хотел бы обновить имена в GEO, например, я хотел бы переименовать Альберту в «Новый индекс цен на жилье - AB (x 100)»

1 Ответ

0 голосов
/ 07 ноября 2018

Определите свою карту имен в виде списка

nameMap <- list( "Alberta" = "New Housing Price Index - AB (x 100)",
                "Atlantic Region" = "New Name 1",
                "British Columbia" = "New Name 2"
                ## and so on )

Затем вызовите recode в столбце GEO, используя mutate_at:

NewHPI %>% mutate_at( "GEO", recode, !!!nameMap )
# # A tibble: 320 x 3
#    REF_DATE GEO                                  VALUE
#    <chr>    <chr>                                <dbl>
#  1 2018-01  New Housing Price Index - AB (x 100) 1.00 
#  2 2018-02  New Housing Price Index - AB (x 100) 0.998
#  3 2018-03  New Housing Price Index - AB (x 100) 0.996
#  4 2018-04  New Housing Price Index - AB (x 100) 0.996
#  5 2018-05  New Housing Price Index - AB (x 100) 0.996
#  6 2018-06  New Housing Price Index - AB (x 100) 0.998
#  7 2018-07  New Housing Price Index - AB (x 100) 0.999
#  8 2018-08  New Housing Price Index - AB (x 100) 0.994
#  9 2018-01  New Name 1                           1.00 
# 10 2018-02  New Name 1                           1.00 

Требуется оператор !!!, поскольку recode принимает произвольное количество аргументов, используя ..., но у вас есть предопределенный список. Этот механизм известен как un-quote-splicing .

...