Мне нужно перекодировать значения для нескольких столбцов фрейма данных на основе другой таблицы.
Мне нужно перекодировать значения нескольких столбцов таблицы данных, используя боковую таблицу. Значения соответствуют географическим c идентификаторам, которые я должен заменить географическими названиями. Поэтому я решил сделать al oop, но то, что работает за пределами l oop, больше не работает. Я не могу использовать mutate для l oop.
Мои реальные данные содержат 274 столбца с 38 столбцами для перекодирования. Эти столбцы имеют много разных имен (они не являются местами вызова)
мой основной набор данных:
id <- c(1, 2, 3)
departure <- c(1, 2, NA)
arrival <- c(3, 1, 2)
transit <- c(NA,NA,1)
dataset <- data.frame(id, departure, arrival, transit)
Другая таблица:
geo_id <- c(1, 2, 3)
place_name <- c("Paris", "Nantes", "London")
geocode <- data.frame(geo_id, place_name)
Мой l oop:
var <- c("departure", "arrival", "transit") #the columns that should by recode (must be a vector with my real data)
for (i in var) {
print(i)
dataset <- dataset %>%
mutate(i = geocode$place_name[match(i, geocode$geo_id)])
}
mutate создать новый вызов столбца i
! Как избежать этого?