#r #random #dataframe
#r #Случайный #фрейм данных
Вопрос:
У меня есть фрейм данных, подобный этому:
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? Если да, не могли бы вы научить меня, как это сделать?
Большое спасибо.
Ответ №1:
При создании нового фрейма данных на основе существующего, обычной парадигмой в R является использование transform
. В вашем случае вы можете просто сделать:
df2 <- transform( df1, C = sample(C) )
Комментарии:
1. Очень элегантно! Не знал о преобразовании. Заслуживает голосования 🙂
2. Блестяще! Нравится это!
Ответ №2:
Вы могли бы сделать что-то вроде:
data.frame(A=df1$A, B=df1$B, C=sample(df1$C))
Таким образом, создание нового фрейма данных, где A и B являются старыми фреймами данных A, B и C, является случайной перестановкой столбца C старого фрейма данных с помощью sample
команды. Конечно, вы бы назначили этому новому фрейму данных переменную, такую как df2 и df3.