如何独立地移动列

时间:2014-10-13 08:57:31

标签: r

如何在大数据帧的所有列中独立地使用R值进行随机/置换/随机化,并保持列的顺序。例如:

> M
  head1 head2 head3
1     1     a     A
2     2     b     B
3     3     c     C
4     4     d     D

> M
  head1 head2 head3
1     2     b     D
2     4     a     A
3     1     d     B
4     3     c     C

1 个答案:

答案 0 :(得分:4)

最直接的方法是使用lapplysample,如下所示:

M[] <- lapply(M, sample)

或者,使用&#34; data.table&#34;:

as.data.table(M)[, lapply(.SD, sample)]

演示:

> M
  head1 head2 head3
1     1     a     A
2     2     b     B
3     3     c     C
4     4     d     D
> set.seed(1)              ## Just so you can reproduce my results
> M[] <- lapply(M, sample)
> M
  head1 head2 head3
1     2     a     C
2     4     c     A
3     3     b     D
4     1     d     B