Я пытаюсь объединить данные из столбца в одном кадре данных в другой столбец во втором кадре данных, используя столбец с общими данными в качестве ключа для операции. Я пробовал несколько различных учебников о том, как реплицировать Excel vlookup в r, и я пробовал несколько разных методов слияния, представленных здесь в ответах на stackoverflow ... но пока ничего, что я пробовал, не делает именно то, м, пытаюсь сделать, хотя кажется, что это будет довольно распространенная функция.Объединить один столбец в двух кадрах данных в R, где только некоторые строки соответствуют
Так вот что я пытаюсь сделать ... чтобы обеспечить очень упрощенный пример, скажем, это dataframe1:
ID RESULT
4 YES
1 YES
3 NO
2 YES
И ниже dataframe2, где столбец РЕЗУЛЬТАТ полностью заселена НАН Украины, некоторые из которых будут заменены на то, что появляется в dataframe1 $ РЕЗУЛЬТАТ (есть еще много значений в dataframe2 $ ID, чем в dataframe1 $ ID, так много NAs должно остаться после слияния):
ID RESULT
1 NA
8 NA
2 NA
9 NA
3 NA
6 NA
7 NA
4 NA
Итак, конечный результат, который я хочу, ниже, dataframe3, где RESULT содержит YES или NO, если одно из этих значений присутствовало в dataframe1 $ RESULT или NA, где не было совпадения между идентификатором dataframe1 $ ID и dataframe2 $ ID.
ID RESULT
1 YES
8 NA
2 YES
9 NA
3 NO
6 NA
7 NA
4 YES
Я сумел сделать слияние с нижеследующим, который добавляет столбец (RESULT.y) в dataframe1, но он также удаляет все строки из dataframe2, которые не имеют аналогов в dataframe1:
dataframe3 <- merge(dataframe2, dataframe1, by=c("ID"))
То, что я в конечном итоге это:
ID RESULT.x RESULT.y
4 NA YES
1 NA YES
3 NA NO
2 NA YES
Если было просто, что он добавил новый столбец вместо того, чтобы модифицировать существующий, я мог бы обойти это, но я не могу понять, как заставить его оставить другие строки в одиночку, а не устранять их. Я попытался следующие, но она возвращает ошибку:
dataframe3 <- merge(dataframe2, dataframe1, by=c("ID", all.x = TRUE))
Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
Помощь будет очень, очень высоко ... Я только работал в г в течение нескольких недель.
Большое вам спасибо - это отлично работает с моим si простой пример! В моих фактических данных второй кадр данных (один со многими строками NA) также имеет около 20 дополнительных столбцов, которые я не хочу потерять в слиянии. Есть ли удобный способ редактировать функцию, чтобы иметь другие столбцы, включенные в dataframe3, или это лучший способ просто сделать дополнительное слияние, чтобы объединить dataframe3 обратно в исходный dataframe2? – littleblue