我错误地使用data.table
了吗?我正在循环并进行子集化,但将其与xts
进行比较,速度要慢得多。对于2026行和9列,对于data.table
我会得到30秒,而对于' xts'我大约2秒钟。
以下是我正在使用的两个示例函数,lb
可以是c(10,20,30,40,50,60)
和data
之类的数字向量,是xts或任何其他对象。要复制我的效果,请data
为xts object
DT <- function(lb,data){
require(data.table)
#lb = c(20,40,60,120,250)
data.core <- data.table(coredata(data))
for(i in (max(lb)+1):nrow(data.core)){
lb.sbst = list()
for(j in 1:length(lb)){
lb.sbst[[j]] = data.core[(i-lb[j]):(i-1),]
}
}
}
XTS <- function(lb,data){
#lb = c(20,40,60,120,250)
for(i in (max(lb)+1):nrow(data)){
lb.sbst = list()
for(j in 1:length(lb)){
lb.sbst[[j]] = data[(i-lb[j]):(i-1),]
}
}
}