在R中基于相同ID将一个表的数值添加到另一个表的新列中
R匹配填充列实现代码
方案1:base R实现(无需额外安装包)
先构造示例数据,可直接运行测试:
# 构建表1 df1 <- data.frame( ID = c("ID1", "ID2"), Value = c(11, 22) ) # 构建表2 df2 <- data.frame( ID = c("ID1", "ID2", "ID3"), Value = c(10, 20, 30), New = NA )
匹配填充代码:
df2$New <- df1$Value[match(df2$ID, df1$ID)]
方案2:dplyr包实现(适合批量数据处理场景)
# 未安装dplyr先运行:install.packages("dplyr") library(dplyr) df2 <- df2 %>% left_join(df1, by = "ID", suffix = c("", "_df1")) %>% mutate(New = Value_df1) %>% select(-Value_df1)
验证结果
运行后输出df2即可得到预期结果:
ID Value New 1 ID1 10 11 2 ID2 20 22 3 ID3 30 NA
内容的提问来源于stack exchange,提问作者Babak Kasraei
相关产品推荐
相关产品推荐

