【发布时间】:2022-01-10 13:11:27
【问题描述】:
我有一个 N x N 数字矩阵,我在 R 中转换为一个数据框,我需要将rnorm 应用于每个单元格。但是,我想使用apply 和replicate 来进行这个计算。我当前在第一个单元格(具有标题)中的计算代码是:
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)
【问题讨论】:
-
你想要的输出是什么? 导致这个 N x N 矩阵的 1000 个实例 ...所以数据帧列表?请说明
matrixName是如何定义的。 -
@Parfait 我想要这个 N x N 矩阵的 1000 个实例的列表,这就是我尝试使用复制的原因。但是,当我使用上面的复制代码时,我只会得到相同的矩阵重复 1000 次。
-
@Parfait
matrixName只是我转换为数据框的 N x N 矩阵 -
我仍然不确定您想要的结果。 实例是什么意思?现在您的
apply返回一个 1000 X N X N 的 3 维数组。为什么这不是您想要的结果?