[R-es] Problema con argumento en funcion nls

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Jul 21 11:54:23 CEST 2009


Hola, ¿qué tal?

Lee la ayuda de ?nls y verás que trae algunos comentarios sobre dónde
busca la función nls (algunos de) sus argumentos:

Variables in formula (and weights if not missing) are looked for first
in data, then the environment of formula and finally along the search
path. Functions in formula are searched for first in the environment
of formula and then along the search path.

En tu ejemplo, nls no busca su argumento weightsArgument "dentro" de
la función wrappernls sino fuera de ella, que es donde has definido la
fórmula.

Se me ocurren varias opciones:

1) Meter el peso dentro de los datos como columna adicional.

2) Recrear la fórmula dentro de la función para asignarle un
"environment" local.

3) Preguntarle a la fórmula cuál es su "environment" y acudir a él a
buscar los pesos.

Personalmente, trataría de implementar (2). Podrías hacerlo (y seguro
que hay formas mejores) definiendo, dentro de tu función

nueva.formula <- formula( deparse( formula.argumento ) )

Un saludo,

Carlos J. Gil Bellosta



Más información sobre la lista de distribución R-help-es