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

Creating a matrix with rows or columns having different sd and mu

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)

我是否需要制作单独的矩阵并以某种方式将它们组合成一个?

不,您不必在循环中重复调用 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是一个基函数,我选择了另一个名字来保存结果。