我有一个功能,现在它是高斯:
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}}默认值,但后来我失去了普遍性。处理此问题的最佳方法是什么?
编辑:这被标记为重复。在那个问题上没有被接受的答案,也不清楚我到底在那里被问到什么。问题的错误信息与我的不同。
答案 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)