2014-11-22 78 views
1

对于周五晚上没有做得更好的人,我有一个结构,我需要随机化其中包含的值。首先,我需要把所有的值(这里是1到11),随机化,并将它们添加回原来的结构中。即使在'1'中仍有4个值,但它们是从1到11个值中随机选择的4个值,'2'和3中的最后3个随机值都是相同的,并且全部没有替换。在R结构中随机化结构中的值

所以:

strct <- structure(list(`1` = 1:4, `2` = 5:8, `3` = 9:11), .Names = 
c("1", "2", "3")) 

屈服例如:

structure(list(`1` = c(4, 6, 1, 11), `2` = c(2, 5, 8, 9), `3` = c(3, 7, 10)), 
    .Names = c("1", "2", "3")) 

谢谢!

回答

2

尝试

split(sample(unlist(strct, use.names=FALSE)), 
      cumsum(sequence(sapply(strct, length))==1)) 

#$`1` 
#[1] 5 2 1 6 

#$`2` 
#[1] 3 9 11 8 

#$`3` 
#[1] 10 7 4