如何在大数据帧的所有列中独立地使用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
答案 0 :(得分:4)
最直接的方法是使用lapply
和sample
,如下所示:
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