Генерация населения в R - PullRequest
0 голосов
/ 26 апреля 2018

Я рассчитываю создать популяцию в R для 1000 клиентов, которые могут попасть в корзину значений от 10 до 1000. Клиенты попадают в корзины с интервалом 10. Например, Cust A может попасть в корзину значений10,20,30 .... 1000.Они взаимоисключающие, поэтому в данном сценарии они могут попасть только в одно ведро.Я хочу список населения, который содержит все возможные сценарии для 1000 клиентов.Это вообще возможно?поскольку перестановки довольно массивны.Ценю любую помощь, которую я могу получить в этом.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Это возможно и кажется простым.

set.seed(2317)    # make the results reproducible
bucket <- seq.int(10L, 1000L, by = 10L)
sample(bucket, 1000, TRUE)
0 голосов
/ 26 апреля 2018

N = 100: 100 количество ведер 1000 клиентов

Для генерации одной возможной перестановки используйте пример:

sample(100,1000,replace=T)

Для создания 100 возможных перестановок используйте копию

replicate(n=100,sample(100,1000,replace=T))

Вы можете использовать пакет gtools для генерации всех возможных перестановок

library(gtools)
r <- permutations(100,1000,repeats.allowed=T)

Но матрица результата будет огромной ...

Пример с 4 клиентами и 2 ведрами:

permutations(2,4,repeats.allowed = T)

      [,1] [,2] [,3] [,4]
 [1,]    1    1    1    1
 [2,]    1    1    1    2
 [3,]    1    1    2    1
 [4,]    1    1    2    2
 [5,]    1    2    1    1
 [6,]    1    2    1    2
 [7,]    1    2    2    1
 [8,]    1    2    2    2
 [9,]    2    1    1    1
[10,]    2    1    1    2
[11,]    2    1    2    1
[12,]    2    1    2    2
[13,]    2    2    1    1
[14,]    2    2    1    2
[15,]    2    2    2    1
[16,]    2    2    2    2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...