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

Dna*_*iel 1 r sample apply plyr

我在R中有一个矩阵,并且不需要执行for循环我想随机地重排行,但是每个列都是独立的.

也就是说,

A=cbind(c(1,2,3),c(4,5,6))
Run Code Online (Sandbox Code Playgroud)

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

例如,

A.shuffle = cbind(c(1,3,2), c(6,4,5))
Run Code Online (Sandbox Code Playgroud)

即,在第1列中,随机混洗改变了2和3的位置,而在第2列中,不同的随机混洗改变了6到4,4到5和5到6的位置.

什么是在R中做到这一点的好方法而不需要做循环?

谢谢!

Aru*_*run 9

这个怎么样?

> apply(A, 2, sample)
Run Code Online (Sandbox Code Playgroud)