我正在开展一些研究,研究重点是信用评级下调对债券价格的影响。我有一个每天都有不同债券的数据集,因此每一行都包含特定日期的特定债券。下面是该表的一小部分摘录:
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)
真的很高兴提供任何帮助。 问候