Я хотел бы создать новый фрейм данных, который заимствует переменную ID из другого фрейма данных. Кадр данных, который я хотел бы объединить, имеет повторные наблюдения в столбце идентификатора, что вызывает некоторые проблемы.Слияние кадров данных с уникальным столбцом
DF1<-data.frame(ID1=rep(c("A","B", "C", "D", "E") , 2), X1=rnorm(10))
DF2<-data.frame(ID1=c("A", "B", "C", "D", "E"), ID2=c("V","W","X","Y" ,"Z"), X2=rnorm(5), X3=rnorm(5))
Что я хотел бы добавить DF2 $ ID2 в DF столбцом ID1. Моя цель состоит в то, что выглядит как это (я не хочу DF2 $ X2 и DF $ X3 в «цели» кадра данных):
Goal<-data.frame(ID2=DF2$ID2, DF1)
Я попытался объединения, но он жалуется, потому что DF1 $ ID1 не является уникальным , Я знаю, что R может показать это в одной строке кода, но я не могу заставить функции, которые я знаю, работать. Любая помощь будет принята с благодарностью!
Или использовать матч просто захватить, что одну переменную 'DF1 $ ID2 <- df2 $ ID2 [match (DF1 $ ID1, DF2 $ ID1)] ' – thelatemail
Вы правы @MrFlick это работает отлично :) Я пытаюсь сделать эту работу над реальными данными и создал этот простой манекен в качестве примера. Я должен был проверить, что эта простая команда слияния работала на мои данные примера, извините. Когда я попробовал этот код на своем реальном наборе данных, я вернулся «Ошибка в файле fix.by (by.y, y):« by »должен указывать однозначно допустимый столбец». Любая идея, что это сообщение об ошибке пытается мне сказать? – LoveMeow
Похоже, что значение, которое у вас есть в 'by =', не соответствует столбцу как в data.frames, так и у вас есть data.frame с дублируемыми именами столбцов. – MrFlick