Я пытаюсь создать набор кросс-лингвистических данных, объединяя три набора данных в dplyr ().Два набора данных являются своего рода «словарями» - это списки слов, которые я хочу прикрепить к докладчикам.В данных имеется 15 говорящих и, следовательно, несколько повторений, в то время как каждое слово появляется в каждом из словарей только один раз.
Когда я соединяю два с помощью left_join (), я получаю реплицированные ячейки.Я знаю, что могу удалить дублирующиеся ячейки, но я чувствую, что должно быть что-то простое, что я делаю неправильно, чтобы создать эту проблему.
Пример данных выглядит следующим образом:
French <- c("un", "deux", "trois", "chien")
English <- c("one", "two", "three", "dog")
type <- c("number", "number", "number", "animal")
speaker <- c(1, 1, 1, 4)
df.fr = data.frame(speaker, French)
df.en = data.frame(speaker, English)
df.type = data.frame(English, type)
Я хочу создать новый набор данных new.df
, соединив df.en
и df.fr
с speaker
, а затем соединив его с df.type
с English
.
Предпочтительно, я бы использовал dplyr() сделать это.Когда я делаю следующее, я получаю дублированные строки:
new.data <- df.fr %>% left_join(df.en)
, который генерирует
speaker French English
1 1 un one
2 1 un two
3 1 un three
4 1 deux one
5 1 deux two
6 1 deux three
7 1 trois one
8 1 trois two
9 1 trois three
10 4 chien dog
Когда на самом деле я просто хочу, чтобы он соединял 'un' с 'one', 'deux'на «два» и т. д .:
speaker French English type
1 1 un one number
2 1 deux two number
3 1 trois three number
4 4 chien dog animal