使用R和dplyr:
library(dplyr)
tab1 <- tribble(
~code, ~periode, ~prix,
"a", "2023-01-01", 3,
"b", "2023-01-01", 2,
"c", "2023-02-01", 2,
"d", "2023-02-01", 4
)
tab2 <- tribble(
~code, ~`2018-01-01`, ~`2018-02-01`, ~`2019-01-01`, ~`2019-02-01`, ~`2020-01-01`,
~`2020-02-01`,~`2021-01-01`, ~`2021-02-01`, ~`2022-01-01`, ~`2022-02-01`,
"a", 2, 1, 2, 3, 3, 4, 1, 2, 2, 1,
"b", 1, 2, 4, 2, 1, 2, 1, 5, 1, 2,
"c", 2, 1, 5, 6, 1, 3, 4, 3, 1, 3,
"d", 3, 2, 7, 8, 6, 4, 5, 9, 7, 8
)
我想在tab1
中添加三列N_1
、N_2
和N_3
,例如,当表1中的Periode为2023-01-01
时:
- 表2中N_1包含值2022-01-01
- 表2中的N_2包含值2021-01-01
- 表2中N_3的值为2020-01-01
以下是一个具有预期结果的最小可重现示例:
# A tibble: 4 × 6
code periode prix N_1 N_2 N_3
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 a 2023-01-01 3 2 1 3
2 b 2023-01-01 2 1 1 1
3 c 2023-02-01 2 3 3 3
4 d 2023-02-01 4 8 9 4
在真实的表中,当然有每年的所有月份,这就是为什么找到要添加的正确列很重要.
我试过这样的方法:
result <- tab1 |>
group_by(periode) |>
mutate(N_1 = tab2[[""]]...
首先要感谢大家!