2015-09-16 1 views
2

У меня есть dataframe с 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