我的代码看起来像这样:
# Dataset 1
df1 <- data.frame(date = c("2022-12-31", "2022-09-30","2022-06-30", "2022-03-31"))
### Dataset 2
df2 <- data.frame(date = c("2022-12-31", "2022-09-30","2022-06-30", "2022-03-31"), pe_ratio = c(22.0,22.6,22.5,28.2))
### What I want
df3 <- data.frame(date = c("2022-12-31", "2022-09-30","2022-06-30", "2022-03-31"))
df3$pe_ratio_minus_1 <- NA
df3$pe_ratio_minus_2 <- NA
df3$pe_ratio_minus_3 <- NA
df3$pe_ratio_minus_1[1] <- df2$pe_ratio[2]
df3$pe_ratio_minus_2[1] <- df2$pe_ratio[3]
df3$pe_ratio_minus_3[1] <- df2$pe_ratio[4]
> df3
date pe_ratio_minus_1 pe_ratio_minus_2 pe_ratio_minus_3
1 2022-12-31 22.6 22.5 28.2
2 2022-09-30 NA NA NA
3 2022-06-30 NA NA NA
4 2022-03-31 NA NA NA
所以我想做的是对于df 1中的日期变量,我想为pe_ratio的df2中的每个值创建一个单独的变量,用于df1中的先前值。但不应包含df1中的实际日期值。
3条答案
按热度按时间wz3gfoph1#
我想这是你想要的,但是它的缺失值比你的结果少……
vsdwdz232#
使用
data.table
62o28rlo3#
outer
来放置match
艾德日期。