R环随机正态分布
我试图实现以下目标:我想从正态分布生成7个值。然后我想取这些值,用它们作为平均值,从正态分布中再生成3个值(对于每个初始值)来替换它们。我想把它写在一个循环中 让我们使用sd=1.5和sd=0.7,从平均值0开始R环随机正态分布,r,loops,normal-distribution,R,Loops,Normal Distribution,我试图实现以下目标:我想从正态分布生成7个值。然后我想取这些值,用它们作为平均值,从正态分布中再生成3个值(对于每个初始值)来替换它们。我想把它写在一个循环中 让我们使用sd=1.5和sd=0.7,从平均值0开始 set.seed(1234) mu.mat<-rnorm(7,mean=0,sd=1.5) 仅适用于循环中的所有条目 我所尝试的: mu.mat2<-NULL for(i in 1:7) { mu.mat2[i]<-rnorm(3,mean=mu.mat[i]
set.seed(1234)
mu.mat<-rnorm(7,mean=0,sd=1.5)
仅适用于循环中的所有条目
我所尝试的:
mu.mat2<-NULL
for(i in 1:7) {
mu.mat2[i]<-rnorm(3,mean=mu.mat[i],sd=0.7)
}
mu.mat2不需要循环。你可以做:
rnorm(21,平均值=rep(μm.mat,每个=3),标准差=0.7)
#> [1] -0.4811184 -1.2327778 -1.8603816 -3.3073277 -2.5190560 -3.2298056
#> [7] -2.3695570 -2.0228732 -1.1692489 2.0342910 1.0186855 1.0838678
#> [13] 0.5486730 -0.2439510 -0.1831147 2.2026024 0.1925301 -0.2153864
#> [19] 2.8944894 1.9213206 1.3804706
但是代码的问题是,您试图将三个值(rnorm(3,mean=mu.mat[i],sd=0.7)
)写入单个原子索引mu.mat2[i]
)。目前还不清楚您是否期望得到一个矩阵,但如果是这样,您的循环将是:
mu.mat2[1,]-0.96624036-1.4808460-2.6824842
#> [2,] -2.88942108 -1.7299094 -3.0446737
#> [3,] -2.82034688 -0.9570087 -2.1822797
#> [4,] 0.58997289 1.0384926 1.8111506
#> [5,] -0.07705959 -0.1024418 0.7249310
#> [6,] 0.48851487 1.4729882 0.6496858
#> [7,] 1.47961292 1.5653253 2.0629409
尝试复制
如下
> replicate(3,rnorm(length(mu.mat),mu.mat,0.7))
[,1] [,2] [,3]
[1,] -2.19324092 -1.13895278 -2.1540788
[2,] 0.02102746 0.33894402 0.1077604
[3,] 1.00363528 1.26895511 1.9483744
[4,] -3.85258144 -4.15638335 -4.0041507
[5,] -0.05518348 0.05766686 -0.3700564
[6,] 0.21570611 2.45016846 1.1614128
[7,] -0.81698877 -0.76824819 -1.5786689
将其转换为3列矩阵可能很有用。它不应该是byrow=TRUE
?rnorm
按顺序调用输出。是的@RuiBarradas我本想这么做,但忘了。谢谢。哎呀,我的缺点是——我倾向于希望结果是列而不是行。sappy(mu.mat,function(mui)rnorm(3,mean=mui,sd=0.7))
或shortsappy(mu.mat,rnorm,n=3,sd=0.7)
> replicate(3,rnorm(length(mu.mat),mu.mat,0.7))
[,1] [,2] [,3]
[1,] -2.19324092 -1.13895278 -2.1540788
[2,] 0.02102746 0.33894402 0.1077604
[3,] 1.00363528 1.26895511 1.9483744
[4,] -3.85258144 -4.15638335 -4.0041507
[5,] -0.05518348 0.05766686 -0.3700564
[6,] 0.21570611 2.45016846 1.1614128
[7,] -0.81698877 -0.76824819 -1.5786689