我有一个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]
}
}
但是这非常慢,我想知道是否有更快的方法来完成此操作。
答案 0 :(得分:0)
有两种方法可以做到:
第一个na.locf
->最后一个观测值从动物园包中结转
或
来自软件包tidyr的第二个fill
,您可以在其中确定使用last或next的值。