#r #dataframe
#r #фрейм данных
Вопрос:
У меня есть два фрейма данных, подобных этому, которые я извлек из большого массива документов:
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
: я хочу, чтобы все lemma_target
, где lemma
то же самое (в данном случае «саммелн») из одного и того же документа (в данном случае doc7
).
Я попытался присоединиться к dfs, используя rbind
, а затем фильтровать и выбирать, но это не сработает, потому что я путаюсь в SQL-синтаксисе… Любая помощь приветствуется!
Ответ №1:
Похоже, вы просто хотите объединить данные, но немного не повезло, что вы использовали одни и те же имена переменных в обоих фреймах данных. Таким образом, 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
Комментарии:
1. Хорошо, я понял вашу идею — но зачем вам присваивать
origin
столбцу значение NULL?2. При присвоении значения NULL столбец удаляется. Я сделал это, потому что кажется, что в этом нет необходимости.
3.
merge
Функция была именно тем, что я искал! Извлекши пример из большего df, я не учел, что повторяющиеся переменные будут проблемой — я изменю это в своих данных.