R: рандомизировать порядок одного столбца data.frame - PullRequest
5 голосов
/ 31 мая 2011

У меня есть такой фрейм данных:

df1 <- data.frame(A=c("xx", "be", "zz", "jj"), B=c("xyx", "bea", "cce", "ggg"), C=c("ges", "xyz", "cce", "edga"))

Я хочу сгенерировать ДВА случайных фрейма данных на основе df1.Я ожидаю, что для каждого случайного кадра данных столбец A и столбец B останутся одинаковыми.Но можно изменить только порядок столбца C.

Могу ли я сделать это с помощью R?Если да, не могли бы вы научить меня, как это сделать?

Большое спасибо.

Ответы [ 2 ]

15 голосов
/ 31 мая 2011

При создании нового фрейма данных на основе существующего обычная парадигма в R заключается в использовании transform.В вашем случае вы можете просто сделать:

df2 <- transform( df1, C = sample(C) )
3 голосов
/ 31 мая 2011

Вы можете сделать что-то вроде:

data.frame(A=df1$A, B=df1$B, C=sample(df1$C))

Таким образом, создание нового фрейма данных, где A и B - это A и B старого фрейма данных, а C - случайная перестановка столбца C старого фрейма данных с использованием команды sample. Конечно, вы должны присвоить этому новому фрейму данных переменную, такую ​​как df2 и df3.

...