这与R中的数据操作和清理有关。
我有数据集1:
Date time Range Waterconsumption
1/1/01 0300 31km 2.0liters
2/1/01 0800 30km 1.8liters
3/1/01 0300 33km 1.7liters
4/1/01 0600 32km 1.8liters
5/1/01 0800 28km 1.7liters
6/1/01 0300 35km 1.6liters
7/1/01 0800 31km 1.8liters
还有数据集2:
Date time heatlost weight
1/1/01 0300 0.27 61.5kg
2/1/01 0800 0.33 62.0kg
5/1/01 0800 0.69 61.7kg
6/1/01 0300 0.15 61.8kg
7/1/01 0800 0.63 62.0kg
如您所见,数据集2已丢失一些日期(从3/1/01到4/1/01)。
那么如何使用cbind组合数据集1和2,即根据日期在waterconsumption(dataset1)后插入heatlost和weight?
答案 0 :(得分:2)
您可以使用库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