我有两个 Dataframe :
df1
包含三列:开始日期(date_start
)、结束日期(date_end
)和严重度分类(category
)df2
有一列日期(date
),该列日期在2020年1月提前一天
如何将df1
连接到df2
,使df1
中的category
填充在date_start
和date_end
之间?
示例数据:
df1 <- data.frame(matrix(ncol = 3, nrow = 2))
colnames(df1)[1:3] <- c('date_start','date_end','category')
df1$date_start <- c(as.Date('2020-01-02'),
as.Date('2020-01-10'))
df1$date_end <- c(as.Date('2020-01-05'),
as.Date('2020-01-13'))
df1$category <- c('moderate','strong')
df2 <- data.frame(matrix(ncol = 1, nrow = 15))
colnames(df2)[1] <- 'date'
df2$date <- seq.Date(as.Date('2020-01-01'),
as.Date('2020-01-15'),
1)
df1
df2
理想的数据框看起来像这样:
date category
1 2020-01-01 NA
2 2020-01-02 moderate
3 2020-01-03 moderate
4 2020-01-04 moderate
5 2020-01-05 moderate
6 2020-01-06 NA
7 2020-01-07 NA
8 2020-01-08 NA
9 2020-01-09 NA
10 2020-01-10 strong
11 2020-01-11 strong
12 2020-01-12 strong
13 2020-01-13 strong
14 2020-01-14 NA
15 2020-01-15 NA
2条答案
按热度按时间omtl5h9j1#
使用
join_by
:cqoc49vn2#
或者,使用
sqldf
包: