【发布时间】:2021-09-17 03:59:50
【问题描述】:
我有一个矩阵m:
set.seed(1)
m = matrix(rnorm(100), nrow = 10, ncol = 10) # my data is not a random matrix in reality, but it should not matter
我想为矩阵的每一行添加 5% Gaussian 噪声。矩阵行的每个元素都应该得到不同的随机噪声。应根据每行的sd 逐行计算随机值。
到目前为止,我已经用 for loop 实现了它,它似乎可以完成这项工作:
for (i in 1:nrow(m)){
m[i, ] = m[i, ] + rnorm(n = ncol(m), mean = 0, sd = sd(m[i, ]) * 0.05)
}
但是,我的真实数据非常大,我想尽可能地将这个实现向量化。
【问题讨论】:
标签: r for-loop matrix vectorization