Datatable和XTS多子集速度

时间:2014-04-04 04:07:48

标签: r data.table xts

我错误地使用data.table了吗?我正在循环并进行子集化,但将其与xts进行比较,速度要慢得多。对于2026行和9列,对于data.table我会得到30秒,而对于' xts'我大约2秒钟。

以下是我正在使用的两个示例函数,lb可以是c(10,20,30,40,50,60)data之类的数字向量,是xts或任何其他对象。要复制我的效果,请dataxts 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),]
        }

    }
}

0 个答案:

没有答案