Случайное деление массива на равные (более двух) массивов в R - PullRequest
0 голосов
/ 03 января 2019

Мне нужно разделить мои данные (одну переменную) на несколько подгрупп одинакового размера, но разделение элементов должно быть случайным.

   let x <- c(1:12)

и я хочу случайным образом разделить его на три подгруппы

    G1<- (1,3,5,10)
    G2<- (2,6,11,7)
    G3<-(12,4,9,8)

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вы можете сделать:

x <- sample(x)
n_grps = 3
grps <- split(x, rep_len(1:n_grps, length(x)))

print(grps)

$`1`
[1]  1 12  8  9

$`2`
[1]  3 10  5  4

$`3`
[1]  6 11  7  2
0 голосов
/ 03 января 2019

Похоже, здесь есть две части - случайным образом перемешайте ваши данные, а затем разбейте вектор на список (под) векторов.

Вы можете попробовать что-то вроде следующего:

x = rnorm(12)
nsplit = 3
split(x[sample(length(x))],rep(1:nsplit,each = length(x)%/%nsplit))

если ваше разбиение не делится равномерно на длину вашего массива, могут быть детали реализации, о которых нужно позаботиться ... но это суть.

ps не слишком педантично, но x=1:12 не нужно c()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...