Как заполнить матрицу случайными числами в R?
expand.grid(i=rexp(5,rate=0.1))
Создает только один столбец, но есть ли способ умножить это на 5 колод? Я имею в виду matlab-way-of-doing-вещи, такие как rand('exp', 0.1, 10,20)
(создание матрицы с экспоненциально распределенными случайными числами со средним значением 0,1 размера 10x20), как?
Ответы
Ответ 1
Используйте функцию matrix:
matrix(rexp(200, rate=.1), ncol=20)
ETA: Если вы хотите сделать это, не повторяя 200, вы можете определить функцию для этого:
fill.matrix = function(expr, nrow=1, ncol=1) {
matrix(eval(expr, envir=list(x=nrow*ncol)), nrow=nrow, ncol=ncol)
}
fill.matrix(rexp(x, rate=.1), nrow=10, ncol=20)
Таким образом, x
становится фиктивной переменной, о которой вы говорите. Это то, что вы ищете?
Ответ 2
вы можете сделать что-то вроде:
matrix(rexp(200), 10)
И, конечно же, используйте то, что вам нужно.
Ответ 3
?matrix
расскажет вам много! и rexp
- функция генерации случайного экспоненциального распределения.
mat <- matrix(data = rexp(200, rate = 10), nrow = 10, ncol = 20)
Ответ 4
Здесь простое решение:
replicate(rexp(10),20)
Ответ 5
Используйте это:
matris=matrix(rnorm(10),5,20)