2015-09-16 38 views
2

我有一個9000行和6列的數據幀。我想使行的順序是隨機的,即某種混洗產生具有相同數據但隨機順序的行的另一個數據幀。有誰能告訴我如何在R中做到這一點?重新洗牌數據幀中的行序列

感謝

回答

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 
+2

' lapply(df,function(x){sample(x)})'可以寫成'lapply(df,sample)' – blmoore