R:使用多个参数的integrate()函数

时间:2016-11-01 15:37:54

标签: r

我有一个功能,现在它是高斯:

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

我希望使用mu将其与s = 50,integrate() = 10进行整合。 E.g。

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

问题源于这样一个事实:integrate()期望一个函数只有一个参数,我给它一个需要3的函数。我可以通过给mu和{{来“解决”这个问题1}}默认值,但后来我失去了普遍性。处理此问题的最佳方法是什么?

编辑:这被标记为重复。在那个问题上没有被接受的答案,也不清楚我到底在那里被问到什么。问题的错误信息与我的不同。

3 个答案:

答案 0 :(得分:2)

跟进罗兰的评论。这样做的正确方法是:

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

答案 1 :(得分:1)

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

G是R中的单个对象.U尝试计算G

G(s=10,mu=50)

但是用3个args定义它

G<-function(x, mu, s)

x缺失。不要计算它,只需像对象一样推动它。

答案 2 :(得分:1)

试试这个:

integrate(function(x, mu=50, s=10) 1/(2*s**2*pi)**0.5 * exp(-(x-mu)**2/(2*s**2)), 0, 10)