Как заполнить матрицу случайными числами в R? - PullRequest
25 голосов
/ 14 февраля 2012
expand.grid(i=rexp(5,rate=0.1))

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

Ответы [ 5 ]

33 голосов
/ 14 февраля 2012

Используйте функцию 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 становится фиктивной переменной, о которой вы говорите. Это то, что вы ищете?

14 голосов
/ 14 февраля 2012

вы можете сделать что-то вроде:

matrix(rexp(200), 10)

И, конечно, используйте любой дистрибутив, какой хотите.

9 голосов
/ 14 февраля 2012

?matrix расскажет вам много!rexp - функция для генерации случайного экспоненциального распределения.

mat <- matrix(data = rexp(200, rate = 10), nrow = 10, ncol = 20)
1 голос
/ 12 февраля 2017

Используйте это:

matris=matrix(rnorm(10),5,20)
0 голосов
/ 24 мая 2016

Вот простое решение:

replicate(rexp(10),20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...