Предполагая, что data1 и data2 - это два фрейма данных (неясно, поскольку кажется, что вы извлекли их из оригинального более крупного отдельного фрейма данных, называемого data), я думаю, что лучше объединить их и работать с одним фреймом данных.То есть, если существует один больший кадр данных, не делайте его подмножеством, просто удалите ненужные столбцы;если data1 и data2 - два фрейма данных, объедините их и работайте только с одним фреймом данных.
Существует несколько способов сделать это в R.
Вам следует просмотреть функцию слияния, вызывающую ?merge
в вашемконсоль и чтение описания функции.
По сути, чтобы объединить два кадра данных, вы должны сделать что-то вроде:
merge(data1, data2, by= columnID) #Where columnID is the name of the variable that identifies the ID. If it is different in data1 and data2 you can use by.x and by.y
Затем вы должны определить, хотите ли выобъединить все строки из обеих таблиц с параметрами all.x, all.y и all: все значения из data1, даже если в data2 не найдено совпадений, или все значения из data2, даже если в data1 не найдено ни одного совпадения, ни все значения независимо отесть ли соответствующий идентификатор в другой базе данных.
Слияние в базовом пакете с любой установкой R.
Вы также можете использовать пакет dplyr, который делает тип объединения дажеболее явно:
inner_join(data1, data2, by = "ID")
left_join(data1, data2, by = "ID")
right_join(data1, data2, by = "ID")
full_join(data1, data2, by = "ID")
Это хорошая ссылка для dplyr join https://rpubs.com/williamsurles/293454
Надеюсь, это поможет