我想计算与向量中每个值相关联的函数的积分。用一个例子,我准确地描述了我的目标如下。
假设x
和y
是独立随机变量,并且I
是指示变量,例如I=1
ify > 0.25x
或zero
else。我想n
从指数分布中绘制 y,并且对于每次绘制,我希望计算 ,g = xf(x)I
的分布上x
的积分f(x)
。我希望这个分布是指数的,参数值为 1。我在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)
我得到结果。有人对如何改进此代码提出建议,以便在输出为 a 的h
每个值处评估函数,然后将其传递给函数?y
function
g