重新洗牌数据框中的行序列

时间:2015-09-16 23:47:59

标签: r rows shuffle

我有一个包含9000行和6列的数据框。我想使行的顺序随机,即某种混洗,以产生具有相同数据但行随机顺序的另一个数据帧。谁能告诉我如何在R中做到这一点?

由于

1 个答案:

答案 0 :(得分:1)

如果你想采样(但保持)相同的行顺序,那么你可以只采样行。

df <- data.frame(x=1:8, y=1:8, z=1:8)
df[sample(1:nrow(df)),]

将产生

  x y z
2 2 2 2
3 3 3 3
4 4 4 4
6 6 6 6
5 5 5 5
8 8 8 8
7 7 7 7
1 1 1 1

如果您应该为每一行单独采样行,那么您可以执行类似

的操作
lapply(df, function(x) { sample(x)})

导致

$x
[1] 3 1 4 6 5 2 8 7

$y
[1] 2 5 6 3 4 8 7 1

$z
[1] 6 1 8 3 2 7 4 5