替代电流回路结构

时间:2014-05-13 08:36:36

标签: r

我正在尝试计算R中大型数据集的分位数。我的代码目前看起来像这样:

percentile <- numeric(length=5000000)

for (i in 1:5000000){
percentile[i] <- quantile(Result[1:i],0.1)
}

其中Result是500万观测值的向量。重要的是,基于迄今为止的观测数量来计算分位数,因为我正在测试模拟收敛。目前,此代码需要很长时间才能运行,使其无法使用。有没有更快的方法来实现这一点,使用plyr包中的矢量化或某些功能?我已经尝试了foreach包,虽然速度稍快,但仍需要大量的时间。

谢谢!

1 个答案:

答案 0 :(得分:1)

你计算的分位数比相关的多得多。下面的代码应该

percentile <- sapply(
    seq(1000, 5000000, by = 1000),
    function(i){
        quantile(head(Result, i), 0.1)
    }
)