在 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))
我目前正在写硕士论文。在我的数据集中,我每天观察 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))