2016-08-14 5 views
1

mean引数のベクトルをrnormにするにはどうすればよいですか?R: `rnorm`の` mean`引数にベクトルを与える方法は?

around_int1_mean <- seq(1.5, 3.5, 0.1) 

私はfor -loopを避け、rnorm(n=25, mean=around_int1_mean, sd=0.2)ような何かをしたいと思います。

length(around_int1_mean)のサンプルをn=25とし、平均(最初のセットで)1.5、次に1.6と最後のセットが平均3.5になるまでします。だから、最後に、私はサイズ25

+2

n = 21にしますか?そうでない場合は、実際にこれから何を期待しているのかを指定する必要はありません。 – Dason

+0

うまくいけば、質問をより明確にしました。 – TMOTTM

+0

それは何を探しているので、二重に質問する必要はありません。 – TMOTTM

答えて

4

のサンプルの21セットは、私が1.6、その後、1.5の(最初のセットで)平均でn=25とサンプルのlength(around_int1_mean)セットを取得したいというようになるまで取得したいです最後のセットは平均3.5です。だから、最後に、私はサイズ25

のサンプルの21セットを取得したいあなたはrnormmeansd引数がベクトル化されている

rnorm(n = length(around_int1_mean) * 25, 
     mean = rep(around_int1_mean, each = 25), sd = 0.2) 

を必要としています。彼らはまず、長さnにリサイクルされます。次に、i = 1, 2, ..., nについては、からi-thサンプルが引き出される。別の例として

、あなたはそれぞれの単一のサンプルをしたい場合意味、ない:

rnorm(n = length(around_int1_mean), mean = around_int1_mean, sd = 0.2) 

@TMOTTMは私が間違っていると主張し、私の答えを否決したように、私が守るために証拠を示さなければなりません私自身。

around_int1_mean <- seq(1.5, 3.5, by = 0.1) 

私は、ランダムなサンプルがちょうど1の確率でmean値をとります。これは、rnormが正しいmeanのためのサンプルの正しいセットを生成していることを証明することを可能に、ランダム性を排除するためにsd = 0を設定します。

x <- rnorm(n = length(around_int1_mean) * 25, 
      mean = rep(around_int1_mean, each = 25), sd = 0) 

また、私はそれを証明するために行列を使用します。

matrix(x, nrow = 25) 

#  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] 
# [1,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [2,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [3,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [4,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [5,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [6,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [7,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [8,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
# [9,] 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 
#  [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] 
# [1,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [2,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [3,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [4,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [5,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [6,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [7,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [8,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [9,] 2.8 2.9  3 3.1 3.2 3.3 3.4 3.5 
# [ reached getOption("max.print") -- omitted 16 rows ] 

明らかに私の答えは正しいです。各列には同じ意味の25個のサンプルがあります。

関連する問題