【发布时间】:2018-03-30 01:55:25
【问题描述】:
我有一个向量:
x = {x1, x2, x3, ..., xn}
还有一些团体:
g = {g1, g2, g3, ..., gn}
我想打乱每个组中的向量元素,但保留原始组排序。例如:
x = c(1, 2, 3, 4, 5)
g = c('a', 'b', 'a', 'b', 'b')
很好的解决方案:
shuffled_x = c(3, 5, 1, 4, 2)
shuffled_g = c('a', 'b', 'a', 'b', 'b')
糟糕的解决方案:
shuffled_x = c(3, 1, 4, 5, 2)
shuffled_g = c('a', 'a', 'b', 'b', 'b')
我已经知道如何在组内随机播放:
y = tapply(x, g, sample)
只是不确定如何让它们保持正确的顺序。
【问题讨论】:
标签: r permutation shuffle