Если я правильно понял ваш вопрос, вы ищете слияние или объединение , как предлагается в комментариях.
Вот простой пример использования фиктивных данных, которые должны соответствовать описанному вами.
library(tidyverse)
# Some dummy data
ColumnToAdd <- c(1,1,1,1,1,1,1,1)
ColumnToMatch <- c('a','b','b','b','c','a','c','d')
A <- data.frame(ColumnToAdd, ColumnToMatch)
ColumnToAdd <- c(1,2,3,4)
ColumnToMatch <- c('a','b','c','d')
B <- data.frame(ColumnToAdd, ColumnToMatch)
# Example using merge
A %>%
merge(B, by = c("ColumnToMatch")) %>%
mutate(sum = ColumnToAdd.x + ColumnToAdd.y)
# Example using join
A %>%
inner_join(B, by = c("ColumnToMatch")) %>%
mutate(sum = ColumnToAdd.x + ColumnToAdd.y)
Преимущества версий dplyr перед слиянием - :
- строки сохраняются в существующем порядке
- намного быстрее
- сообщает вам, какие ключи вы объединяете (если вы не предоставляете)
- такжеработа с таблицами базы данных.