Rollapply函数计算R中的比例非常慢

时间:2018-02-07 16:23:51

标签: r

我有一个大约180 000个小值的向量(但我会扩展它)。

head(UncertaintyData)
[1] 0.95 0.99 0.06 0.02 1.00 1.00

我正在做的很简单,我想知道每个非重叠滑动窗口中值的比例低于某个值:

    proportion_above = function(vec)
    {
      return(sum(vec < 0.1) / length(vec))
    }

        UncertaintyData=rollapply(UncertaintyDataHaploidI1100, 20000, proportion_above,   by=1)

   user  system elapsed 
321.248   0.016 321.322 

比计算每个窗口的平均值快100多倍。

   UncertaintyData=rollapply(UncertaintyDataHaploidI1100, 20000, mean,   by=1)
     user  system elapsed 
  2.144   0.032   2.175 

为什么proportion_above这么慢,我怎样才能加快速度呢?

感谢。

0 个答案:

没有答案