【发布时间】:2020-09-21 13:10:04
【问题描述】:
我正在尝试实现以下目标:我想从正态分布中生成 7 个值。然后我想取这些值,并使用它们作为平均值从正态分布中生成另外 3 个(对于每个初始值)值来替换它们。我想循环写这个。
让我们使用 sd = 1.5 和 sd = 0.7,并从平均值 0 开始。
set.seed(1234)
mu.mat<-rnorm(7,mean=0,sd=1.5)
给了我 7 个不错的价值观。
然后我想创建一个生成 3 范数的数字 num [1:21]。区值使用刚刚创建的列表的 mean = 第一个值,sd = 0.7,另外三个使用第二个值,依此类推。
形式:
rnorm(3,mean=mu.mat[1],sd=0.7)
仅适用于循环中的所有条目。
我尝试过的:
mu.mat2<-NULL
for(i in 1:7) {
mu.mat2[i]<-rnorm(3,mean=mu.mat[i],sd=0.7)
}
导致错误:否。要替换的项目数不是替换长度的倍数。
非常感谢任何有关如何将其放入循环的帮助。提前致谢!
【问题讨论】:
-
sapply(mu.mat, function(mui) rnorm(3, mean=mui, sd=0.7)) -
或简称
sapply(mu.mat, rnorm, n=3, sd=0.7)
标签: r loops normal-distribution