根据R中大矢量的分布进行采样

时间:2015-03-03 12:55:59

标签: r bigdata

我有一个110亿价值的大矢量。不知道数据的分布,因此我想根据现有的概率/分布对500k数据点进行采样。在R中,可以加载到矢量中的值有限 - 2 ^ 31 -1这就是我打算手动进行采样的原因。

有关数据的一些信息:数据只是整数。其中许多都被重复多次。

large.vec <- (1,2,3,4,1,1,8,7,4,1,...,216280)

要在分布中创建500k样本的概率,我将首先创建概率序列。

prob.vec <- seq(0,1,,500000)

接下来,将这些概率转换为原始序列中的位置。

position.vec <- prob.vec*11034432564

我创建位置向量的原因是,在订购人口数据后,我可以在特定位置拍摄数据点。

现在我计算总体中每个整数值的出现次数。使用整数值及其计数创建数据框。我还为每个值创建间隔

integer.values counts lw.interval up.interval 0 300,000,034 0 300,000,034 1 169,345,364 300,000,034 469,345,398 2 450,555,321 469,345,399 919,900,719 ...

现在使用位置向量,我确定哪个位置值落在哪个区间,并根据该区间得到该区间的值。

这样我相信我有一个人口样本。我从这个参考中得到了很大一部分想法, Calculate quantiles for large data

我想知道是否有更好的方法?或者,如果这种方法可以合理,虽然粗略地给我一个很好的人口样本?

此过程确实需要一段合理的时间,作为位置向量,以便遍历数据框中的所有可能间隔。为此,我使用RHIPE使其并行。

我知道我能够这样做只是因为可以订购数据。

我不想在这里随机抽样,我试图“抽样”数据,保持底层分布不变。主要减少110亿至500k。

0 个答案:

没有答案