Генерация матрицы с определенным числом повторений для определенных номеров - PullRequest
0 голосов
/ 23 октября 2018

Я хотел бы сгенерировать матрицу, которая содержит 0,1 и 2, и иметь эти значения в разных порциях, скажем, 90% 1, 5% 0 и 5% 2.

Я могусгенерируйте матрицу с этими числами, используя это:

test <- matrix(0, 10, 10)
test[] <- apply(test, c(1,2), function(x) sample(c(0,1,2),1))

Но я не знаю, как генерировать матричную выборку 1 90% случаев и 0 и 2 5% случаев.

Вы знаете, как я мог этого достичь?

1 Ответ

0 голосов
/ 23 октября 2018

Это должно дать то, что вы хотите:

v <- rep(c(0, 1, 2), round(10 * 10 * c(0.05, 0.9, 0.05)))
matrix(sample(v), nrow = 10, ncol = 10)
#       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#  [1,]    1    1    1    1    1    1    1    1    1     1
#  [2,]    1    1    2    1    1    1    1    1    1     1
#  [3,]    2    1    1    0    1    1    1    1    2     1
#  [4,]    1    1    1    1    1    1    1    1    1     1
#  [5,]    1    0    1    1    1    2    1    1    1     1
#  [6,]    1    1    1    1    1    1    1    1    1     1
#  [7,]    1    1    1    0    1    1    1    1    1     1
#  [8,]    1    1    1    1    1    1    1    0    1     1
#  [9,]    1    1    0    1    1    1    1    1    1     2
# [10,]    1    1    1    1    1    1    1    1    1     1
...