R中无替换的随机有序样本
函数RandomKSubsets来自 从一组数字中绘制无替换的有序子集 `R中无替换的随机有序样本,r,random,R,Random,函数RandomKSubsets来自 从一组数字中绘制无替换的有序子集 ` RandomKSubsets:=proc(n,k) 本地rno,东、西; 如果nsample对于大型n来说确实很慢。对于以下参数,在我的计算机上进行一次呼叫平均需要约15秒: set.seed(123) n_int <- 1.e7 n_s <- 1000 microbenchmark::microbenchmark(sample.int(n_int, n_s, prob = rep(1/n_int, n_
RandomKSubsets:=proc(n,k)
本地rno,东、西;
如果nsample
对于大型n
来说确实很慢。对于以下参数,在我的计算机上进行一次呼叫平均需要约15秒:
set.seed(123)
n_int <- 1.e7
n_s <- 1000
microbenchmark::microbenchmark(sample.int(n_int, n_s, prob = rep(1/n_int, n_int)),
times = 5L,
unit = 's')
查看示例
功能。它允许你从一个有替换或无替换的数字向量中采样。我想从所有有序整数集中统一采样。Sample函数不这样做。Sample
根据值的频率进行采样。如果您想改变这一点,那么使用probs
参数指定1/n或什么东西太慢,无法计算大n和k的所有概率。慢与快是不同的问题。您可以通过Rcpp将上述算法移动到Cpp中,使其在R中更快,这可能是最快的速度
set.seed(123)
n_int <- 1.e7
n_s <- 1000
microbenchmark::microbenchmark(sample.int(n_int, n_s, prob = rep(1/n_int, n_int)),
times = 5L,
unit = 's')
microbenchmark::microbenchmark(wrswoR::sample_int_expj(n_int, n_s, prob = rep(1/n_int, n_int)),
times = 5L,
unit = 's')