Предположим, у меня есть вектор длины n
. Допустим, n=3
так и вектор v=c(3,5,4)
.
У меня есть матрица нулей с n
строками и m
столбцами. Допустим, m=5
mymatrix <- matrix(rep(0, 3*5), nrow=3)
я хочу случайным образом распределить значения v
по столбцам для каждой строки. Таким образом, в этом примере первая строка будет суммироваться до 3, вторая строка будет суммироваться до 5, а третья строка будет суммироваться до 4. Например, это будет одно из возможных случайных присвоений:
0 1 2 0 0
3 1 0 0 1
0 2 2 0 0
Суммы из строк 3,5,4, которые являются значениями v
.
Как я могу выполнить sh это? Я думал начать с
sapply(v, function(i){sample(1:m, i, replace=TRUE)})
и go оттуда, но это дает мне список, так как каждый результат имеет разную длину, и я не уверен, как действовать дальше.
РЕДАКТИРОВАТЬ: намерение не является отрицательными числами, поэтому 0 9 1 1 -8
суммирование в 3 не будет допустимой строкой.