Как я пересекаю два data.frames в R?

У меня есть две таблицы, которые находятся в структуре data.frame. Таблица 1 содержит столбец из 200 идентификаторов генов (букв и цифр), а таблица 2 содержит список из 4000 идентификаторов генов (в строках), а также 20 дополнительных столбцов. Я хочу пересечь эти две таблицы и сгенерировать новую таблицу 3, которая содержит 200 идентификаторов генов, а также соответствующую информацию в 20 столбцах.

table3 <- table1% n% table2

2 ответа

Вы хотите что-то вроде

table3 <- merge(table1, table2, by.x="id", by.y="id", all.x=T, all.y=F)

Вы также можете сделать поднабор с чем-то вроде этого:

table3 <- table2[table2$id %in% table1$id,]

Представление представило бы этому посту больше шансов получить хороший ответ, но вы должны были бы найти что-то, чтобы помочь вам с небольшим поиском. Если они не работают из-за того, что у вас есть уникальная проблема, которую никто раньше не задавал, мы предлагаем вам альтернативные решения.

отредактируйте: для большего контекста, вот аналогичный вопрос, на который я ответил на прошлой неделе, и вот отличный пост о понимании слияний.

Я рекомендую dplyr пакет. Это работает более интуитивно, чем merge по-моему.

Вы можете просто набрать:

table3 <- left_join(table1, table2, by = "unique_id")
Другие вопросы по тегам