R语言中如何基于match_col列将DF2的值映射填充到DF1?
在R中基于匹配列映射填充DataFrame的值
你可以用以下两种常见方法实现需求:
方法一:基础R的merge()函数
直接使用merge()函数,按match_col列进行匹配,会自动将DF2的value对应填充到DF1的每一行:
DF1 <- data.frame(match_col = c("apple", "apple", "apple", "banana", "banana","orange")) DF2 <- data.frame(match_col = c("apple", "banana", "orange"), value = c(13,4,8)) result <- merge(DF1, DF2, by = "match_col") print(result)
输出结果:
match_col value 1 apple 13 2 apple 13 3 apple 13 4 banana 4 5 banana 4 6 orange 8
方法二:tidyverse的dplyr::left_join()
如果你习惯用tidyverse生态,left_join()更直观,能保留DF1的所有行并匹配对应值:
library(dplyr) result <- left_join(DF1, DF2, by = "match_col") print(result)
运行后得到的结果和上面一致,符合你期望的格式。
内容的提问来源于stack exchange,提问作者Becky
相关产品推荐
相关产品推荐

