Вы можете использовать библиотеку dplyr::left_join(df1, df2, "time")
Сначала давайте сгенерируем некоторые данные для работы, отражая переменные в вашем проекте выше:
df1 <-
data.frame(
id = c(1:4),
time = c(1:4),
range = floor(runif(4, 28,32)),
watercon = round(runif(4,1.5,1.7),2)
)
df2 <-
data.frame(
id = c(1,4),
time = c(1,4),
heatlost = c(0.25,0.33),
weight = c(62.5,61.4)
)
df2
имеет некоторые пропущенные значенияв соответствии с вашими первоначальными вопросами, и когда мы применяем left_join
, эти значения будут заменены на NA
.
Если вы примените left_join
для объединения по "времени", а затем сохраните только те переменные, которые хотите использовать, используя select
:
library(dplyr)
left_join(df1, df2, "time") %>%
select(time, range, watercon, heatlost, weight)
Вы получите возвращаемый фрейм данных:
time range watercon heatlost weight
1 30 1.52 0.25 62.5
2 29 1.55 NA NA
3 29 1.51 NA NA
4 30 1.53 0.33 61.4