Что вам нужно сделать, это объединить или «объединить» ваши наборы данных, вот три наиболее распространенных подхода: l. Сначала вот данные, с которыми я проверяю это.
# Dummy data
df1 <- data.frame(
V1 = letters[1:10],
V2 = rnorm(10, 0, 1))
df2 <- data.frame(
V1 = letters[c(1,4,6)],
V3 = rnorm(3, 0, 1))
Первый подход - это база R с использованием функции merge()
, которая задает два фрейма данных и переменную, с помощью которой она должна объединять данные.
# Base R
merge(df1, df2, by = "V1")
Далее используются пакеты tidyverse и канал, %>%
, сначала выберите df1, а затем - функцию right_join()
, одну из множества различных функций объединения в этих пакетах.
# Tidyverse
library(tidyverse)
df1 %>% right_join(df2, by = "V1")
Последний вариант - тот, который я бы использовал, из пакета data.table. Присоединяемая переменная (и) здесь задается как on = ...
.
# Data.table
library(data.table)
# - convert to data.tables
setDT(df1)
setDT(df2)
# - join
df1[df2, on = "V1"]
Обратите внимание, что если вы строили / считывали свои данные как таблицу данных (используя data.table()
и fread()
соответственно), вы может пропустить шаг преобразования.