基于多个条件(包括日期转换)选择行

时间:2019-04-22 07:34:23

标签: r filter dplyr conditional

我正在开展一些研究,研究重点是信用评级下调对债券价格的影响。我有一个每天都有不同债券的数据集,因此每一行都包含特定日期的特定债券。下面是该表的一小部分摘录:

bonds
# A tibble: 6 x 4
ISIN              Date         Spread Rating_new
<chr>             <date>        <dbl> <chr>     
1 DE000CZ40MC5 ISIN 2017-09-14  0.156 NA        
2 DE000CZ40MC5 ISIN 2017-09-15  0.159 NA        
3 DE000CZ40MC5 ISIN 2017-09-18  0.185 NA        
4 DE000CZ40MC5 ISIN 2017-09-19  0.177 NA        
5 DE000CZ40MC5 ISIN 2017-09-20  0.203 A+        
6 DE000CZ40MC5 ISIN 2017-09-21  0.235 NA 

在第二张表中,我分别提取了每个债券的所有评级下调,如下所示:

downgrades
# A tibble: 6 x 4
ISIN              Date         Spread Rating_new 
<chr>             <date>        <dbl> <chr>      
1 XS1636000561 ISIN 2018-05-30  0.356 A3    
2 XS1636000561 ISIN 2018-05-30  0.356 Baa1
3 XS1636000561 ISIN 2018-10-23  0.345 Baa2 
4 XS1636000561 ISIN 2018-10-23  0.345 Baa1       
5 XS1693281617 ISIN 2018-09-20  0.448 A          
6 XS1693281617 ISIN 2018-12-21  0.578 Baa2 

这个想法是为所有降级选择一个间隔[-30,-1],它代表降级前30天到降级前1天之间的间隔。因此,我想为每个降级选择31行并将其放在单独的表中。到目前为止,我尝试了以下方法:

interval <- bonds %>% filter((between(Date, downgrades$Date - 30, 
downgrades$Date -1)) & ISIN == downgrades$ISIN)

真的很高兴提供任何帮助。 问候

0 个答案:

没有答案