Скажем, у меня есть следующий фрейм данных (реальный - 10 столбцов labelx):
id <- c(1,2,3,4,5,6,7,8)
label1 <- c("apple","shoe","banana","hat","dog","radio","tree","pie")
label2 <- c("apple","sneaker","fruit","beanie","pet","ipod","doug fir","pie")
df <- data.frame(id,label1,label2)
И я хотел бы заменить все элементы в столбцах меток словом, которое его классифицирует.
food <- c("apple","banana","pie","fruit")
clothing <- c("shoe","hat","beanie")
entertainment <- c("radio","ipod","mp3 player","phone")
forest <- c("tree","doug fir","redwood","forest")
Я пробовал что-то вроде следующего:
column_list <- c("label1","label2")
new_df <- df
for(i in 1:2) {
new_df <- new_df %>%
mutate(parse(text=column_list[i-1]) = replace(parse(text=column_list[i-1]),
(parse(text=column_list[i-1]) %in% food),
"food"))
}
Мне не нужно делать это так, проще тоже хорошо.Tidyverse предпочтительнее.Как заменить несколько значений между несколькими столбцами в R-кадре данных?