Я работаю над набором данных, состоящим из ~ 10 ^ 6 значений, которые сгруппированы в переменное количество ячеек. В ходе моего анализа я пытаюсь рандомизировать свою кластеризацию, но сохраняю постоянный размер ячейки. В качестве игрушечного примера (в псевдокоде) это будет выглядеть примерно так:
data <- list(c(1,5,6,3), c(2,4,7,8), c(9), c(10,11,15), c(12,13,14));
sizes <- lapply(data, length);
for (rand in 1:no.of.randomizations) {
rand.data <- partition.sample(seq(1,15), partitions=sizes, replace=F)
}
Итак, я ищу такую функцию, как «partition.sample», которая будет брать вектор (например, seq (1,15)) и случайным образом выбирать из него, возвращая список с данными, разделенными на правильные размеры ячеек, заданные уже " размеры".
Я пытался сам написать одну такую функцию, так как задача кажется не такой уж сложной. Тем не менее, разбиение вектора на заданные размеры ячеек выглядит так, как будто это было бы намного быстрее и эффективнее, если бы оно выполнялось «под капотом», то есть, вероятно, не в родном R. Поэтому мне интересно, не пропустил ли я только что имя соответствующего функция, или может ли кто-нибудь указать мне умное решение, которое есть вокруг :-)
Ваша помощь и время очень ценятся! :-)
Лучший,
Лаймонд
ОБНОВЛЕНИЕ:
Под «n.of.randomizations» я подразумеваю фактическое количество раз, когда я прохожу весь «цикл рандомизации». Позже это, очевидно, будет включать в себя больше шагов, чем просто фактическая выборка.
Более того, я был бы также заинтересован в том, чтобы сделать описанный выше трюк для выборки без замены.
Заранее спасибо, ваша помощь очень ценится!