创建具有不同sd和mu的行或列的矩阵

时间:2018-12-19 16:55:19

标签: r matrix mean standard-deviation

对于R来说不是一个新手。我已经找到了如何创建矩阵的方法,但是在使行具有不同的标准偏差和均值方面遇到困难。

例如

row 1: mu = 3.5, SD = 0.5
row 2: mu = 4, SD = 1
...

到目前为止,我的代码如下:

n = 5
k = 5
mu = 3.5
stdev = 0.5
dat = rnorm(n*k, mu, stdev)
sample = matrix(data=dat, nrow=n, ncol=k)

我需要制作单独的矩阵,然后以某种方式将它们组合成一个矩阵吗?

1 个答案:

答案 0 :(得分:1)

否,您不必循环调用rnorm。 R是向量化的,*dist函数也是如此。
以下将满足您的要求。

n <- 2
k <- 5
mu <- c(3.5, 4)
stdev <- c(0.5, 1)

set.seed(1234)    # Make the results reproducible
dat <- rnorm(2*k, mean = mu, sd = stdev)
sample.mat <- matrix(data = dat, nrow = n, ncol = k)

请注意,sample是基本函数,我选择了另一个名称保存结果。