Подтвердить что ты не робот

Как заполнить матрицу случайными числами в R?

expand.grid(i=rexp(5,rate=0.1))

Создает только один столбец, но есть ли способ умножить это на 5 колод? Я имею в виду matlab-way-of-doing-вещи, такие как rand('exp', 0.1, 10,20) (создание матрицы с экспоненциально распределенными случайными числами со средним значением 0,1 размера 10x20), как?

4b9b3361

Ответ 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)