在矩阵的函数中使用 Apply 和 Replicate
Use Apply and Replicate in a function for a matrix
我有一个 N x N 数字矩阵,我将其转换为 R 中的数据框,我需要将 rnorm
应用于每个单元格。但是,我想使用 apply
和 replicate
来执行此计算。我当前在第一个单元格(具有 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)
我有一个 N x N 数字矩阵,我将其转换为 R 中的数据框,我需要将 rnorm
应用于每个单元格。但是,我想使用 apply
和 replicate
来执行此计算。我当前在第一个单元格(具有 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)