Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:从具有行特定概率的大型表中采样行_R_Performance_Matrix - Fatal编程技术网

R:从具有行特定概率的大型表中采样行

R:从具有行特定概率的大型表中采样行,r,performance,matrix,R,Performance,Matrix,我希望以特定于每一行的概率对表中的行进行采样 我的表大约有5000万行,我希望从中抽取500000行,即1%。这样做需要几个小时。你是否知道如何使它更有效,比如使用C++包,即使是样本和[似乎都是用C? 我目前使用的命令: myTableSample <- myTable[sample(1:dim(myTable)[1], 500000, prob = prob_vector),] 谢谢!好吧,这会快得多 ind <- sample.int(dim(myTable)[1], 500

我希望以特定于每一行的概率对表中的行进行采样

我的表大约有5000万行,我希望从中抽取500000行,即1%。这样做需要几个小时。你是否知道如何使它更有效,比如使用C++包,即使是样本和[似乎都是用C? 我目前使用的命令:

myTableSample <- myTable[sample(1:dim(myTable)[1], 500000, prob = prob_vector),]

谢谢!

好吧,这会快得多

ind <- sample.int(dim(myTable)[1], 500000, prob = prob_vector)
ind <- sort(ind)
myTableSample <- myTable[ind, ]
在排序之前,你要做的是完全随机的访问。但是在排序之后,cpu缓存的实用性要好得多


当然,这还不是最快的。你可以用C写这行子集,这是基于我以前的经验,比[?,]快得多。

谢谢!确实快。不过我可以用C写子集。非常感谢!!!