使用apply或plyr独立地对矩阵的列进行混洗

时间:2013-03-20 21:54:22

标签: r plyr apply sample

我在R中有一个矩阵,而且不需要做一个for循环我想随机洗牌行,但是每个列都是独立的。

即,

A=cbind(c(1,2,3),c(4,5,6))

我希望有一个新的矩阵,让我们说A.shuffle,其中第1 c(1,2,3)列和第2 c(4,5,6)列是随机混合的。

例如,

A.shuffle = cbind(c(1,3,2), c(6,4,5))

即,在第1列中,随机shuffle改变了2和3的位置,而在第2列中,不同的随机shuffle将6的位置改为4,4到5和5到6。

在R中做这件事的好方法是什么,而不需要做循环?

谢谢!

1 个答案:

答案 0 :(得分:9)

这个怎么样?

> apply(A, 2, sample)