У меня есть два набора данных.Один выглядит примерно так:
df <- data.frame(Book=c(1,1,1,2,2,2,3,3,3),
Character=c('Sally', 'Jessie', 'Linda', 'Sally', 'Jessie', 'Linda', 'Sally', 'Jessie', 'Linda'),
Target=c('Jessie', 'Linda', 'Sally', 'Jessie', 'Linda', 'Sally', 'Jessie', 'Linda', 'Sally'),
Word=c('time', 'good', 'like', 'time', 'good', 'like', 'time', 'good', 'like'),
Total=c(1,2,4,2,4,3,2,4,4))
А другой выглядит примерно так:
df2 <- data.frame(Character=c('Sally', 'Jessie', 'Linda'),
Word=c('time', 'good', 'like'),
AllTotal=c(5,10,11))
Я пытаюсь объединить наборы, сохраняя те же размеры, что и df +1 новый столбец (AllTotal).Например, я хочу показать, что Салли произнесла слово «время» Джесси 1 раз в Книге 1 из 5 раз по всему набору данных.Конечный макет таблицы будет выглядеть примерно так:
df3 <- data.frame(Book=c(1,1,1,2,2,2,3,3,3),
Character=c('Sally', 'Jessie', 'Linda', 'Sally', 'Jessie', 'Linda', 'Sally', 'Jessie', 'Linda'),
Target=c('Jessie', 'Sally', 'Jessie', 'Jessie', 'Sally', 'Sally', 'Jessie', 'Linda', 'Sally'),
Word=c('time', 'good', 'like', 'time', 'good', 'like', 'time', 'good', 'like'),
Total=c(1,2,4,2,4,3,2,4,4),
AllTotal=c(5,10,11,5,10,11,5,10,11))
Мне нужен какой-нибудь код слияния или сопоставления, такой, чтобы всякий раз, когда слово из df2 совпадало с словом из слова, в нем создавался новый столбец.df (AllTotal), который помещает соответствующее значение AllTotal из df2.
Мои фактические наборы данных не работают в согласованном порядке, как это делают мои примеры, поэтому я не могу просто повторить значения AllTotal, как я делал в своих примерах.
Я новичокк R и кодированию, и поэтому я не знаю всех правильных терминов.Я надеюсь, что то, что я спрашиваю, имеет смысл из приведенных мной примеров.Я пробовал разные версии слияния, inner_join и циклов for, и не могу получить правильный ответ.Поскольку я не знаю, как правильно обозначить то, что я пытаюсь сделать, мои поиски оказались бесполезными.
Заранее спасибо за вашу помощь!