R整合\ sapply三个变量函数

时间:2017-07-01 17:17:11

标签: r function sapply integrate

我有以下问题: 我考虑两个条目函数(fvec),我想将它与一个变量(即x)集成。所以我这样做;

fvec = function(x, y) sapply(x, function(z, y) z-y, y=y) 
gvec = function(x) sapply(x, function(y) integrate(fvec, lower=2, upper=3, y=y)$val)

然后当y = 2

时,我就会产生gvec
a=gvec(2)

并且代码有效。

但是,如果我引入第三个变量并尝试应用相同的过程:

fvec = function(x, y, w) sapply(x, function(z, y, w) z-y+w, y=y, w=w) 

gvec = function(x,t) sapply(x, function(y,w) integrate(fvec, lower=2, upper=3, y=y, w=w)$val)

b=gvec(2,2)

R给出了以下错误:

  

FUN中的错误(X [[i]],...):参数" w"缺少,没有默认

我无法理解为什么,我真的很感谢你的帮助。 感谢

1 个答案:

答案 0 :(得分:0)

这行中有拼写错误

gvec = function(x,t) sapply(x, function(y,w) integrate(fvec, lower=2, upper=3, y=y, w=w)$val)

你在开头调用变量t然后你称之为w。此版本按预期工作:

gvec = function(x,t) sapply(x, function(y,w) integrate(fvec, lower=2, upper=3, y=y, w=t)$val)