在 R 中按日期删除行 - 财务数据

Removing rows by date in R - Financial data

我目前正在写硕士论文。在我的数据集中,我每天观察 5413 家公司 15 年。我需要删除非交易日,即伦敦证券交易所的假期,如圣诞节、新年等。我已经提到 'Removing rows containing specific dates in R' 但找不到解决我的问题的方法 我的数据集包含股票收盘价,如下所示(具有相同的数据格式)

Date          A       B
31/12/1999  NA        NA
03/01/2000  NA        NA
04/01/2000  79.5      325
05/01/2000  79.5      322.5
06/01/2000  NA       NA   
07/01/2000   79.5   327.5

例如,我想删除日期 31/12/1999 和 06/01/2000 以便我的数据看起来像

Date        A         B
03/01/2000  NA        NA
04/01/2000  79.5    325
05/01/2000  79.5    322.5  
07/01/2000  79.5    327.5

我是 R 的新手,但这个 Whosebug 非常有帮助。提前谢谢你

假设您的 Date 列是一个字符向量,您可以修改 user3949008 在评论中提供的答案,在 holidayLONDON 中指定您需要的年份:

df$Date <- as.Date(df$Date,"%d/%m/%Y")
df[!df$Date %in% as.Date(holidayLONDON(1999:2000)), ] 

输出:

        Date    A     B
1 1999-12-31   NA    NA
3 2000-01-04 79.5 325.0
4 2000-01-05 79.5 322.5
5 2000-01-06   NA    NA
6 2000-01-07 79.5 327.5

数据:

df <- structure(list(Date = c("31/12/1999", "03/01/2000", "04/01/2000", 
"05/01/2000", "06/01/2000", "07/01/2000"), A = c(NA, NA, 79.5, 
79.5, NA, 79.5), B = c(NA, NA, 325, 322.5, NA, 327.5)), .Names = c("Date", 
"A", "B"), class = "data.frame", row.names = c(NA, -6L))