以下是示例数据.我们的目标是在第二个(数据框的名称)中创建一个标题为调整的新列,它将是d2022列中相应的INDCODE、AREA、OWOWNY组合.下面是所需结果的第一行.对如何做到这一点有什么 idea 吗?最终目标是获得这种调整,然后创建另一个新列,即第一个2022美元-第一个美元调整.

indcode  <- c(482000,482000,482000,524000,524000,524000)
 area <- c("000032","029820","039900","000032","029820","039900")
 ownership <- c(50,50,50,50,50,50)
 d2022 <- c(10,6,2,100,60,20)

 First<-data.frame(indcode,area,ownership,d2022)

这是现有数据

 indcode <- c(482000,482000,482000,484000,484000,484000,524000,524000,524000,531000,531000,531000)
 area <- c("000032","029820","039900","000032","029820","039900","000032","029820","039900","000032","029820","039900")
 ownership <- c(50,50,50,20,30,50,50,50,50,20,30,50)
 d2020 <- c(200,199,198,197,196,195,194,193,192,191,190,189)
 d2021 <- c(201,200,199,198,197,196,195,194,193,192,191,190)
 d2022 <- c(204,203,202,201,200,199,198,197,196,195,194,193)

 second <- data.frame(indcode1,area1,ownership1,d2020,d2021,d2022)

期望的结果

  indcode      area     ownership     d2020    d2021   d2022  adjustment
  482000      000032         50       200        201    204      10
   

推荐答案

也许我们可以修改数据集的列名并执行连接

library(dplyr)
library(stringr)
 First %>%
   rename_with(~ str_c(.x, '_adjustment'), matches("^d\\d{4}$")) %>% 
  left_join(second, .)

-输出

  indcode   area ownership d2020 d2021 d2022 d2022_adjustment
1   482000 000032        50   200   201   204               10
2   482000 029820        50   199   200   203                6
3   482000 039900        50   198   199   202                2
4   484000 000032        20   197   198   201               NA
5   484000 029820        30   196   197   200               NA
6   484000 039900        50   195   196   199               NA
7   524000 000032        50   194   195   198              100
8   524000 029820        50   193   194   197               60
9   524000 039900        50   192   193   196               20
10  531000 000032        20   191   192   195               NA
11  531000 029820        30   190   191   194               NA
12  531000 039900        50   189   190   193               NA

R相关问答推荐

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

无法运行通过R中的Auto.arima获得的ARIMA模型

从gtsummary包中使用tBL_strata()和tBL_summary()时删除变量标签

Highcharter多次钻取不起作用,使用不同方法

derrr summarise每个组返回多行?

R for循环返回到先前值

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

制作等距离的线串副本

计算满足R中条件的连续列

使用R中的正则表达式将一列分割为多列

函数可以跨多个列搜索多个字符串并创建二进制输出变量

如何在ggplot2中创建多个y轴(每个变量一个)

提高圣彼得堡模拟的速度

如何在R中使用混合GAM模型只对固定的影响因素进行适当的预测?

`-`是否也用于数据帧,有时使用引用调用?

无法将条件case_when()应用于使用!!创建的新变量Mutations

使用geom_sf跨越日期线时的闭合边界

R dplyr::带有名称注入(LHS of:=)的函数,稍后在:=的RHS上引用

使用卡环从R中的列中删除单位(&C)

如何根据每个子框架中分类因子的唯一计数来过滤子框架列表?