R替换矩阵中的NA:运行非常慢

时间:2018-11-30 13:37:15

标签: r performance

我有一个pricedata对象,另存为具有315列和3365行的XTS。 有股票市场的价格序列。

> dim(pricedata)
[1] 3365  315

问题有时(每年大约10次)具有NA值(市场关闭),而这些值将由以前的值代替。 请注意,NA有时可能连续3-4天。

我的代码:

pricedata_carry = pricedata   
     for (x in 1:length(colnames(pricedata)))
       {
        list_na = which(is.na(pricedata[,x]))

            for (y in 1:(length(list_na)))
             {          
               pricedata_carry[list_na[y],x] =  pricedata_carry[list_na[y]-1,x]             
             }
        }

但是这非常慢,我想知道是否有更快的方法来完成此操作。

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到:

第一个na.locf->最后一个观测值从动物园包中结转

或 来自软件包tidyr的第二个fill,您可以在其中确定使用last或next的值。