如何在R语言中从另一个数据框创建新列?附示例
解决方案:匹配多键提取值并计算差值
核心思路
通过多字段关联(indcode、area、ownership),从First数据框中匹配对应组合的d2022值作为Adjustment列,再计算second$d2022与Adjustment的差值。
代码实现(使用dplyr包)
# 加载dplyr包(未安装先执行 install.packages("dplyr")) library(dplyr) # 关联数据并新增计算列 second <- second %>% # 从First中提取目标字段并重命名后关联到second left_join(First %>% select(indcode, area, ownership, Adjustment = d2022), by = c("indcode", "area", "ownership")) %>% # 计算差值列,可自定义列名(示例用d2022_diff) mutate(d2022_diff = d2022 - Adjustment)
期望结果首行示例
| indcode | area | ownership | d2020 | d2021 | d2022 | Adjustment | d2022_diff |
|---|---|---|---|---|---|---|---|
| 0101 | 北京 | 国有 | 95 | 110 | 145 | 138 | 7 |
注:
Adjustment值完全匹配First中相同indcode+area+ownership组合的d2022,d2022_diff为两行d2022的差值。
内容的提问来源于stack exchange,提问作者Tim Wilcox
相关产品推荐
相关产品推荐

