Lym*_*ond 1 r sample vector data-partitioning
我正在研究一个由~10 ^ 6个值组成的数据集,这些数据集聚成可变数量的二进制数.在我的分析过程中,我试图随机化我的聚类,但保持bin大小不变.作为玩具示例(伪代码),这看起来像这样:
data <- list(c(1,5,6,3), c(2,4,7,8), c(9), c(10,11,15), c(12,13,14));
sizes <- lapply(data, length);
for (rand in 1:no.of.randomizations) {
rand.data <- partition.sample(seq(1,15), partitions=sizes, replace=F)
}
Run Code Online (Sandbox Code Playgroud)
所以,我期待像"partition.sample",将采取一个载体(如SEQ(1,15)),并随机抽样它,返回与分隔为由已经给右单元大小的数据列表的功能"大小".
我一直在尝试自己写一个这样的功能,因为这个任务似乎并不那么难.然而,矢量的分割成给定的块大小看起来这将是一个很大更快,更有效的,如果做"引擎盖下",意思可能不是本地R.所以我不知道我是否只是错过了合适的名称功能,或者是否有人可以请我指出一个智能解决方案:-)
非常感谢您的帮助和时间!:-)
最好,
Lymond
更新:
"no.of.randomizations"是指我在整个"随机化循环"中运行的实际次数.稍后,这将显然包括比实际采样更多的步骤.
此外,我还有兴趣在不更换的情况下进行上述取样专长.
在此先感谢,非常感谢您的帮助!
修订:这应该是相当有效的.它的复杂性主要应该在排列步骤中:
# A single step:
x <- sample( unlist(data))
list( one=x[1:4], two=x[5:8], three=x[9], four=x[10:12], five=x[13:16])
Run Code Online (Sandbox Code Playgroud)
如上所述,"no.of.ndomndom"可能是此过程重复应用的次数,在这种情况下,您可能希望包含以下replicate内容:
replic <- replicate(n=4, { x <- sample(unlist(data))
list( x[1:4], x[5:8], x[9], x[10:12], x[13:15]) } )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |