R 按日期划分的xts文件子集
我刚开始用R编码,发现自己被卡住了。我的文件由高频股票指数数据组成,并转换为xts文件。 见下文(左栏为日期和时间,右栏为日内返回): 我的数据持续了五年,我想用500天的时间对其进行子集,然后循环向前移动30天。然而,循环本身是不需要的,但是如何构造这种函数的帮助将受到高度赞赏 我使用了以下函数,其中我的数据集名为“DIRV”,即日内收益的总和:R 按日期划分的xts文件子集,r,subset,xts,R,Subset,Xts,我刚开始用R编码,发现自己被卡住了。我的文件由高频股票指数数据组成,并转换为xts文件。 见下文(左栏为日期和时间,右栏为日内返回): 我的数据持续了五年,我想用500天的时间对其进行子集,然后循环向前移动30天。然而,循环本身是不需要的,但是如何构造这种函数的帮助将受到高度赞赏 我使用了以下函数,其中我的数据集名为“DIRV”,即日内收益的总和: b<-head(DIRV, n=500) L<-as.Date(index(b)[1]) J<-as.Date(index(b
b<-head(DIRV, n=500)
L<-as.Date(index(b)[1])
J<-as.Date(index(b)[500])
V<-IRV["L/J"]
b您的错误是因为您试图在日期时间内将字符串“L/J”
作为子集,这对子集操作没有意义。此外,您还应注意不要返回L
或J
,这可能发生在数据的边界上,否则您会出错
请尝试以下操作以避免出现错误:
if (is.na(L) || is.na(J)) stop("Not a valid date range.")
V <-IRV[paste0(L,"/", J), ]
if(is.na(L)| is.na(J))停止(“不是有效的日期范围”)
非常感谢FXQuantTrader“paste0”函数正是我要寻找的函数,现在脚本工作正常。在这种情况下,我没有让rollapplyr工作,因为它要求我按分钟滚动,而不是按天滚动,而且由于日内数据不是规则的,因为它在某些天内包含不同数量的观察,所以我无法准确地运行此函数。
if (is.na(L) || is.na(J)) stop("Not a valid date range.")
V <-IRV[paste0(L,"/", J), ]