У меня есть набор данных для обновления с использованием набора данных ключей.Я хотел бы изменить записи в наборе данных (group_1: group_3) на их соответствующие значения.
Помните, что на самом деле мой ключевой набор данных имеет + 25k записей, и поиск эффективного решения - вот что приводит меня сюда!Вся помощь оценена.
Пример игрушки
df <- data.frame(state=rep("state_a"),
candidate=c("a","b","c"),
group_1= c("g_1","g_2","g_3"),
group_2= c("g_4","g_5",NA),
group_3= c("g_5",NA,NA))
key <- data.frame(group=c("g_1","g_2","g_3","g_4","g_5"),
leader=c("l_1","l_2","l_3","l_4","l_4"))
Результат:
df <- data.frame(state=rep("state_a"),
candidate=c("a","b","c"),
group_1= c("g_1","g_2","g_3"),
group_2= c("g_4","g_5",NA),
group_3= c("g_5",NA,NA))
ДОПОЛНИТЕЛЬНАЯ ЗАПРОС: Я хотел бы использовать df_2
(того же размера, что и df
), чтобы решить, какие записи сохранить df_final
, а затем преобразовать.
df_2 <- data.frame(state=rep("state_a"),
candidate=c("a","b","c"),
value_1= c("1","2","0"),
value_2= c("3","2",NA),
value_3= c("5",NA,NA))
df_final_temp <- data.frame(state=rep("state_a"),
candidate=c("a","b","c"),
group_1= c("g_1","g_2",NA),
group_2= c("g_4","g_5",NA),
group_3= c("g_5",NA,NA))
df_final <- data.frame(state=rep("state_a"),
candidate=c("a","b","c"),
group_1= c("l_1","l_2",NA),
group_2= c("l_4","l_5",NA),
group_3= c("l_5",NA,NA))