合并数据框:将含部分观测多变量的df2并入全观测的df1
解决方法
首先要注意:两个表的id类型不一致——df1的id是整数型,df2的id是字符型,直接合并会导致匹配失败,所以第一步必须统一类型,再执行左连接合并来保留df1的所有观测。
步骤1:统一id数据类型
把df2的id转换为整数型,和df1保持一致:
df2[, id := as.integer(id)]
步骤2:执行左连接合并
使用data.table的merge函数,通过all.x = TRUE参数保留df1的所有行,匹配到的行填充df2的变量值,未匹配的自动填充NA:
merged_df <- merge(df1, df2, by = "id", all.x = TRUE)
结果说明
合并后的merged_df会包含df1中100到120的所有id,其中id为100、105、115、120的行有对应的x、y、z数值,其余行的这三个变量均为NA。
内容的提问来源于stack exchange,提问作者Artūrs Katamadze
相关产品推荐
相关产品推荐

