2012-04-30 10 views
0

私はこのようなデータを持っています。私はこれを試みたが、失敗し与えられた平均値と標準偏差の最大値と最小値

info0 info1 info2 SD Mean 
10x  0  e0  0.38 1.14 
10x  0  e2  0.74 1.48 
10x  0  e4  1  1.85 
10x  0  e6  1.24 2.27 
10x  0.1  e0  0.35 1.13 
10x  0.1  e2  0.69 1.44 
10x  0.1  e4  0.96 1.82 
10x  0.1  e6  1.21 2.23 
10x  0.5  e0  0.34 1.12 
10x  0.5  e2  0.67 1.4 
10x  0.5  e4  0.95 1.75 
10x  0.5  e6  1.19 2.17 
10x  1  e0  0.29 1.09 
10x  1  e2  0.59 1.32 
10x  1  e4  0.87 1.66 
10x  1  e6  1.11 2.06 
10x  2  e0  0.23 1.06 
10x  2  e2  0.5  1.24 
10x  2  e4  0.79 1.54 
10x  2  e6  1.04 1.9 
10x  4  e0  0.22 1.0.5 
10x  4  e2  0.41 1.15 
10x  4  e4  0.65 1.37 
10x  4  e6  0.91 1.7 

: そして、私は最大値と最小密度 は、以下の標準偏差(SD)と手段(MEAN)のリストを与えられた見つけたいです。

dat <- read.table("test.dat", header = TRUE) 
densities <- apply(dat[, 4:5], 1, function(x) rnorm(n = 1000000, mean = x[2], sd = x[1])) 

maxden <- max(densities) 
minden <- min(densities) 

これは正しい方法はありますか?

+1

最小値と最大値は何ですか?あなたはもう少し文脈を教えてくれますか?指定平均とsdを持つ正規分布を仮定すると、max *確率*密度は1/sqrt(2 * pi *σ^ 2)ですが、私はそれがあなたが探しているとは思いません。可能な最大値と最小値*は+/-無限大です。 N個のランダムな正規偏差のサンプルの最大値と最小値を計算することができますが、N ...極値理論に大きく依存します。サイズNのサンプルで最大値と最小値*を得るのに役立ちます。どのような問題を解決しようとしていますか? –

+0

私はあなたが持っている1.0.5の要素であるという意味で問題を推測しています。 –

+0

私はそれについて考えて、私はとても急いで答えてはならないはずです。どこが失敗し、エラーメッセージは何ですか? –

答えて

1

最初に、このような巨大なデータセットと多くのnを操作しないことをお勧めします。rnorm。これにより、コードにbrowserを入れて、何が起きているのかを簡単に把握することができます。最初に、データの手段は、書式設定で行ったことが原因です。

str(dat) 
'data.frame': 24 obs. of 5 variables: 
$ info0: Factor w/ 1 level "10x": 1 1 1 1 1 1 1 1 1 1 ... 
$ info1: num 0 0 0 0 0.1 0.1 0.1 0.1 0.5 0.5 ... 
$ info2: Factor w/ 4 levels "e0","e2","e4",..: 1 2 3 4 1 2 3 4 1 2 ... 
$ SD : num 0.38 0.74 1 1.24 0.35 0.69 0.96 1.21 0.34 0.67 ... 
$ Mean : Factor w/ 24 levels "1.0.5","1.06",..: 6 13 19 24 5 12 18 23 4 11 ... 

これはコード内で対処する必要があります。

今、私たちは私たちが欲しいものを得るために、コードを使用して見ることができます(あなたが実際にそれを使用するが、テスト目的のために、これは理想的だったときrnorm中のnを調整し、コードに多くの行を供給する必要があります):

densities <- apply(dat[1:10, 4:5], 1, function(x) { 
     rnorm(n = 10, mean = as.numeric(x[2]), sd = as.numeric(x[1])) 
    } 
) 
+0

私はOPが 'apply(density、2、range)'を求めていると思っていますが、答えが何を意味するのか分かりません。 –

関連する問題