ベクトルの各値に関連付けられた関数の積分を計算したいと考えています。例を使用して、私は次のように私の目的を正確に説明します。
x
とy
は独立確率変数であり、はその場合またはそうでないI
ような指標変数であるとします。指数分布から y の描画を作成したいのですが、描画ごとに、 の分布に対する の積分を計算したいと考えています。この分布をパラメータ値 1 の指数分布にしたい。 で次のコードを試しました。I=1
y > 0.25x
zero
n
g = xf(x)I
x
f(x)
r
f = function(n){
h = list()
g = numeric()
y = rexp(n)
for(i in 1:n){
h[i] = function(x){(x * dexp(x) * (y[i] > 0.5*x))}
g[i] = integrate(h[i], lower=-Inf, upper=Inf)
}
return(summary(g))
}
しかし、その後 f(3) を実行するとエラーメッセージ " が表示されます*Error in h[i] = function(x) { : cannot coerce type 'closure' to vector of type 'list'"*
。しかし、次のコードを実行すると
y = rexp(1)
h = function(x){x * dexp(x) * (y > 0.5*x)}
integrate(h, lower=-Inf, upper=Inf)
f(3)
結果が出ます。h
関数が の各値で評価されy
、出力が でありfunction
、それが関数に渡されるように、このコードを改善する方法について誰かが提案していg
ますか?