2017-07-01 4 views
0

J'ai le problème suivant: Je considère une fonction de deux entrées (fvec) et je veux l'intégrer à une variable (c'est-à-dire x). Donc je fais;R intégrer sapply trois variables fonction

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) 

J'eveluate gvec quand y = 2

a=gvec(2) 

et le code fonctionne.

Cependant, si je présente une troisième variable et je tente d'appliquer la même procédure:

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 me donne l'erreur suivante:

Error in FUN(X[[i]], ...) : argument "w" is missing, with no default

Je ne comprends pas pourquoi et je vraiment apprécier votre aide. Merci

Répondre

0

vous avez une faute de frappe dans cette ligne

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

vous appelez la variable t au début et plus tard, vous l'appelez w. Cette version fonctionne comme prévu:

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