我有一个有点简单的问题,我无法正确理解。
我有两个数据框,第一个数据框仅包含日期(多年来的每个月),第二个数据框也包含日期和一些其他数据,但仅包含第二个变量发生变化的月份。就像下面这样:
df1 <- data.frame(Dates.1 = seq.Date(as.Date('1999/1/1'), as.Date('2001/5/1'), 'month'))
Dates.2 <- c(seq.Date(as.Date('1999/1/1'), as.Date('2001/5/1'), by = '5 months'))
Vals <- c(10, 20, 15, 44, 70, 50)
df2 <- data.frame(Dates.2, Vals)
我需要做的是连接 df1 和 df2,将 df1 中小于或等于 df2 中日期的每个日期的“Vals”中的相应值关联起来。输出应如下所示(我想找到一种以矢量化方式实现的方法):
df3 <- cbind(df1,Vals3. = c(10,10,10,10,10,20,20,20,20,20,15,15,15,15,15,
44,44,44,44,44,70,70,70,70,70,50,50,50,50))
我尝试过使用 dplyr 的 join 和 fuzzyjoin 包,但我无法正确获取它(我是 R 的初学者)。当然,如果有人可以使用这些软件包提出解决方案,我将非常高兴。谢了!