在矩阵的函数中使用 Apply 和 Replicate

Use Apply and Replicate in a function for a matrix

我有一个 N x N 数字矩阵,我将其转换为 R 中的数据框,我需要将 rnorm 应用于每个单元格。但是,我想使用 applyreplicate 来执行此计算。我当前在第一个单元格(具有 headers)中的计算代码是:

firstCell <- data.frame(
    rnorm(1000, mean = matrixName[2,1], sd = 0.8*matrixName[2,1])
)

我尝试先使用 apply

matrixApply <- apply(
    matrixName, c(1,2), function(x) rnorm(
        1000, 
        mean = x, 
        sd = 0.8*x
    )
)

现在,我想使用 replicate 将相同的计算重复 1000 次,从而得到此 N x N 矩阵的 1000 个实例。但是,当我使用下面的代码时,我只是得到了相同的矩阵,重复了 1000 次。

useReplicate <- replicate(n=1000, matrixApply, simplify=F)

replicate 重复一个表达式。一旦将表达式分配给对象 matrixApply,replicate 就不知道 matrixApply 是如何生成的。
你想要:

useReplicate <- replicate(n=1000, apply(
    matrixName, c(1,2), function(x) rnorm(
        1000, 
        mean = x, 
        sd = 0.8*x
    )
), simplify=F)