如何按日期索引拆分XTS数据帧?

问题描述

我通过结合各种XTS对象技术指标来创建数据框。

alldata_SBI <- data.frame(Ad(SBIN.NS),SMA50_SBI,SMA200_SBI,EMA50_SBI,EMA200_SBI,BB_SBI,Momentum_SBI,MACD_SBI,RSI_SBI,ROC_SBI,WPR_SBI)
colnames(alldata_SBI) <- c("ADJ.CLOSE","SMA50","SMA200","EMA50","EMA200","BB.DN","BB.MAVG","BB.UP","BB.PCTB","MOMENTUM","MACD","MACD.SIGNAL","RSI","ROC","WPR")

我看到数据框具有日期索引。

Data Frame Output

我注意到此日期索引是自动创建的,可能是因为我组合了XTS对象,所以索引也会随之出现。

现在,我想将此数据框分成以下两个不同的训练和测试集

火车

测试

我该如何实现?

解决方法

如果您将数据保留在xts对象中,而不是data.frame中,则容易得多。

假设您的数据仍在xts对象中

alldata_sbi <- merge(Ad(SBIN.NS),SMA50_SBI,SMA200_SBI,EMA50_SBI,EMA200_SBI,BB_SBI,Momentum_SBI,MACD_SBI,RSI_SBI,ROC_SBI,WPR_SBI)

train <- alldata_sbi["2015-01-01/2018-12-31"]
test <- alldata_sbi["2019-01-01/2019-12-31"]

# alternatively,you only need to specify the smallest period you need
train <- alldata_sbi["2015/2018"]  # all obs in 2015-2018
test <- alldata_sbi["2019"]        # all obs in 2019

现在,您可以根据需要将traintest转换为data.frames。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...