2017-08-06 45 views
0

我已经建立由N个值的阵列,说随机分裂阵列中的R采用分体式()和样品()

a <- array(dim = c(x, y)). 

欲阵列为K组,其中数组值是随机分配的分区到K组中的一个。例如,如果K = 2且N = 10,则一个子阵列可以具有7个值,而另一个具有3.所有子阵列中的值必须总和为N(例如,7 + 3 = 10)。

我知道使用split()和sample()可能是最简单的路线。我已尝试

split(a, sample(a, 2)) 

但这不起作用,因为它应该。

任何想法?

+0

你想分裂后的数据是什么?阵列?向量? – CPak

+0

@ChiPak我希望它成为K子阵列 –

回答

0
a <- array(c(1,2,3,4,5,6)) 
k <- 3 
split(sample(a),1:k) 

# [1] 2 3 
# 
# $`2` 
# [1] 4 5 
# 
# $`3` 
# [1] 6 1 
+0

如何更改实现以使每个子阵列具有不同数量的值,而不是在子阵列之间平均分配值? –

+0

类似于split(样本(a),样本(1:k,长度(a),替换= TRUE))'将会随机地将每个项目分配给范围为1:k – epi99