Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R环随机正态分布_R_Loops_Normal Distribution - Fatal编程技术网

R环随机正态分布

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]

我试图实现以下目标:我想从正态分布生成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],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))
或short
sappy(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