Есть ли способ генерировать набор данных с нормально распределенными случайными значениями в R без использования цикла? Каждая запись будет представлять собой независимую случайную переменную с нормальным распределением.
Генерировать матрицу с обычными случайными величинами iid с использованием R
Ответ 1
Чтобы создать матрицу N
by M
из обычных случайных переменных, введите это:
matrix( rnorm(N*M,mean=0,sd=1), N, M)
настройте среднее и стандартное отклонение по желанию.
Ответ 2
пусть mu
- вектор средств и sigma
вектор стандартных разработчиков
mu<-1:10
sigma<-10:1
sample.size<-100
norm.mat<-mapply(function(x,y){rnorm(x,y,n=sample.size)},x=mu,y=sigma)
создаст матрицу с столбцами, содержащими соответствующие образцы
Ответ 3
Вы можете использовать:
replicate(NumbOfColumns,rnorm(NumbOfLines))
Вы можете заменить rnorm
на другую функцию распределения, например runif
, для создания матриц с другими дистрибутивами.
Ответ 4
Примечание: каждая запись независима. Поэтому вы не можете избежать использования для циклов, потому что вам нужно вызывать rnorm один раз для каждой независимой переменной. Если вы просто вызываете rnorm (n * m), что n * m выборок из одной и той же случайной величины!