Как извлечь тройки из двух кадров данных в R? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть два таких фрейма данных, которые я извлек из большого массива документов:

id <- c("doc7")
lemma_target <- c("Teilestatus", "Meldung", "Datum", "Datum", "Betriebsarten")
lemma <- c("ergeben", "senden", "ermitteln", "sammeln", "enthalten")
origin <- c("oa_relations")

oa_relations <- data.frame(id, lemma_target, lemma, origin)

id <- c("doc7")
lemma_target <- c("Information", "welch", "teilen", "System", "Datum")
lemma <- c("ergeben", "werden", "werden", "sammeln", "enthalten")
origin <- c("sb_relations")

sb_relations <- data.frame(id, lemma_target, lemma, origin)

Теперь я хочу извлечь тройки из двух фреймов данных, в моем примере System - sammeln - Datum: Iхотите все lemma_target, где lemma одинаково (в данном случае "sammeln") из одного и того же документа (в данном случае doc7).Я попытался присоединиться к dfs, используя rbind, а затем отфильтровать и выбрать, но это не сработает, потому что я путаюсь с синтаксисом SQL ... Любая помощь очень важна!

1 Ответ

0 голосов
/ 16 апреля 2019

Кажется, что вы просто хотите объединить данные, но немного не повезло, что вы использовали одинаковые имена переменных в обоих фреймах данных. Поэтому функция merge() не работает без небольшой подстройки данных, поскольку в противном случае она ищет одинаковые значения во всех именах общих переменных. Я добавил "_oa" и "_sb" к вашим "lemma_target" именам переменных и предположил, что имена origin не нужны.

colnames(oa_relations)[2] <- "lemma_target_oa"
colnames(sb_relations)[2] <- "lemma_target_sb"
oa_relations$origin <- NULL
sb_relations$origin <- NULL

merge(oa_relations, sb_relations)

Это дает:

    id     lemma lemma_target_oa lemma_target_sb
1 doc7 enthalten   Betriebsarten           Datum
2 doc7   ergeben     Teilestatus     Information
3 doc7   sammeln           Datum          System
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...