2014-11-22 75 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