Я пытаюсь выполнить функцию, которую ранее выполнял в Excel, но не могу найти средства для ее достижения.
У меня есть два набора данных: один - мой базовый набор данных, а другой - справочная таблица.У моей базы есть две колонки, имя и фамилия людей.Моя справочная таблица также имеет эти первые два столбца, но она также включает в себя имя замены.
People <- data.frame(
Fname = c("Tom","Tom","Jerry","Ben","Rod","John","Perry","Rod"),
Sname = c("Harper","Kingston","Ribery","Ghazali","Baker","Falcon","Jefferson","Lombardy")
)
Lookup <- data.frame(
Fname = c("Tom","Tom","Rod","Rod"),
Sname = c("Harper","Kingston","Baker","Lombardy"),
NewFname = c("Tommy","Tim","Roderick","Robert")
)
Что я хочу сделать, это заменить Fname на NewFname, в зависимости от двух условий: что Fname иСоответствие имени в обоих таймфреймах.Это потому, что у меня есть набор данных с другими 40000 строк данных, которые должны быть обработаны.В конечном итоге, я надеюсь получить следующий фрейм данных:
People <- data.frame(
Fname = c("Tommy","Tim","Jerry","Ben","Roderick","John","Perry","Robert"),
Sname = c("Harper","Kingston","Ribery","Ghazali","Baker","Falcon","Jefferson","Lombardy")
)
Однако мне нужно функциональное решение, поэтому мне не нужно вручную вводить условия и имена замены по отдельности.До сих пор у меня есть следующее (проблемное) решение, которое включает генерацию нового столбца с использованием mutate в dplyr, но он не работает
People %>%
mutate(NewName = if_else(
Fname == Lookup$Fname & Sname == Lookup$Sname, NewFname, Fname
))