【发布时间】:2021-11-09 23:00:40
【问题描述】:
自 1993 年以来,我一直在处理巴西指数 (IBOV) 的每日回报,我试图找出对两个日期之间的时段进行子集化的最佳方法。
数据框(IBOV_RET)如下:
head(IBOV_RET)
DATE 1D_RETURN
1 1993-04-28 -0.008163265
2 1993-04-29 -0.024691358
3 1993-04-30 0.016877637
4 1993-05-03 0.000000000
5 1993-05-04 0.033195021
6 1993-05-05 -0.012048193
...
我将 2 个变量 DATE1 和 DATE2 设置为日期
DATE1 <- as.Date("2014-04-01")
DATE2 <- as.Date("2014-05-05")
我能够使用此代码创建一个新子集:
TEST <- IBOV_RET[IBOV_RET$DATE >= DATE1 & IBOV_RET$DATE <= DATE2,]
它有效,但我想知道是否有更好的方法来对两个日期之间的数据进行子集化,可能使用subset。
【问题讨论】:
-
如果您将数据框命名为
df并将日期命名为t1和t2,则可以得到更短的名称,例如:df[df$Date %in% t1:t2, ]。澄清一下,t1:t2适用于日期,因此您不需要有不等式。