如何按日期索引拆分 XTS 数据帧?
How to Split a XTS Data Frame by Date Index?
我通过组合作为 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 对象,所以索引会一起出现。
现在,我想将这个数据框分成 2 个不同的训练和测试集,如下所示
火车 <- 从 2015-01-01 到 2018-12-31
测试 < 从 2019-01-01 到 2019-12-31
我怎样才能做到这一点?
如果将数据保存在 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
现在,如果需要,您可以将 train
和 test
转换为 data.frame。
我通过组合作为 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 对象,所以索引会一起出现。
现在,我想将这个数据框分成 2 个不同的训练和测试集,如下所示
火车 <- 从 2015-01-01 到 2018-12-31
测试 < 从 2019-01-01 到 2019-12-31
我怎样才能做到这一点?
如果将数据保存在 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
现在,如果需要,您可以将 train
和 test
转换为 data.frame。