2016-11-01 3 views
0

私が機能を持っているが、今のところはガウス分布である:R:複数の引数を()関数を統合

G<-function(x, mu, s) 1/(2*s**2*pi)**0.5 * exp(-(x-mu)**2/(2*s**2)) 

私はintegrate()を使用して、= 50 muで= 10 sそれを統合したいです。例えば。

integrate(G(s=10,mu=50), 0, 10) 
Error in G(s = 10, mu = 50) : argument "x" is missing, with no default 

問題はintegrate()は、単一の引数を持つ関数を期待しているという事実に由来し、私はそれに私がmusデフォルト値を与えることで、問題を「解決」することができます。3.をとる関数を与えますが、い一般性を失う。これを処理する最良の方法は何ですか?

編集:これは重複としてマークされています。その質問には受け入れられた答えがなく、そこに何が尋ねられているのかが私にはっきりと分かっていません。問題のエラーメッセージは私のものとは異なります。

+1

'integrate(G、0、10、s = 10、mu = 50)' – Roland

+0

これは一般的に関数がRの引数としてどのように渡されるのでしょうか? –

+0

これは、関数を別の関数に渡し、追加のパラメーターを関数に渡す必要がある場合には一般的です。たとえば、「lapply」も同様に設定されます。 – Roland

答えて

0

はローランドさんのコメントフォローアップ。これを行う正しい方法は、 `help(" integrate ")`、特にその引数の説明を調べてください。

integrate(G, 0, 10, s=10, mu=50) 
0
integrate(G, s = 10, mu = 50, 0, 10) 

GはG

G(s=10,mu=50) 

を計算しようとR. Uで単一のオブジェクトであるが、xが欠落している3つの引数

G<-function(x, mu, s) 

でそれを定義しています。それを計算せず、単にオブジェクトのようにプッシュしてください。

1

はこれを試してみてください:

integrate(function(x, mu=50, s=10) 1/(2*s**2*pi)**0.5 * exp(-(x-mu)**2/(2*s**2)), 0, 10) 
関連する問題