Saludos,

 

Una consulta mas. Cuando coloco getAnywhere(print.nls), me sale lo siguiente:

 

A single object matching ‘print.nls’ was found
It was found in the following places
  registered S3 method for print from namespace stats
  namespace:stats
with value

function (x, digits = max(3L, getOption("digits") - 3L), ...) 
{
    cat("Nonlinear regression model\n")
    cat("  model: ", deparse(formula(x)), "\n", sep = "")
    cat("   data: ", deparse(x$data), "\n", sep = "")
    print(x$m$getAllPars(), digits = digits, ...)
    cat(" ", if (!is.null(x$weights) && diff(range(x$weights))) 
        "weighted ", "residual sum-of-squares: ", format(x$m$deviance(), 
        digits = digits), "\n", sep = "")
    .p.nls.convInfo(x, digits = digits)
    invisible(x)
}
<bytecode: 0x02c4583c>
<environment: namespace:stats>

 

Quiero usar esta expresion como modelo para cuando cree otro print.xxx con la funcion que aun estoy creando, sin embargo la penultima parte que dice 

 

.p.nls.convInfo(x,digits=digits)

 

no entiendo muy bien que significa, he estado buscando esa funcion pero me sale que no es encuentra, alguno sabe que significa esa expresion?

 

Gracias de antemano


Gabriel Antonio Trujillo Paucar
Estudiante de Biologia
     997603768
 

 

> Date: Wed, 29 May 2013 11:55:42 +0200
> Subject: Re: [R-es] Ocultar componentes de una lista
> From: cgb@datanalytics.com
> To: gabriel_enter@hotmail.com
> CC: evapcastro@yahoo.es; r-help-es@r-project.org
> 
> Hola, ¿qué tal?
> 
> El que una función de un paquete sea o no visible es una elección de
> su autor. Tiene todo el sentido del mundo ocultar ciertas funciones
> auxiliares que llaman las funciones del paquete pero que se supone que
> no están pensadas para ser invocadas directamente por el usuario
> final.
> 
> Eso sí, hay maneras (usar getAnywhere es una de ellas) de ver su
> código (p.e., para solucionar errores en un programa).
> 
> Salud,
> 
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
> 
> 
> 
> El día 28 de mayo de 2013 23:01, Gabriel Trujillo Paucar
> <gabriel_enter@hotmail.com> escribió:
> > Hola Eva,
> >
> >
> >
> > Gracias por la respuesta fue de mucha ayuda. Lo que me gustaria saber es por que solo algunas funciones que usan el metodo S3 son visibles en su estructura con la funcion "body". Por ejemplo si coloco
> >
> >
> >
> > body(print.ts)
> >
> >
> >
> > Me va a salir la estructura de esa funcion, sin embargo si coloco
> >
> >
> >
> > body(print.nls)
> >
> >
> >
> > Me sale el siguiente mensaje :Error in body(print.nls) : object 'print.nls' not found
> >
> >
> >
> > A pesar de que esa funcion tambien existe, ya que la encuentras cuando colocas methods(print) solo que con un asterisco al costado diciendo que so son visibles.
> >
> > ¿Sabes por que es esto? La manera a la cual pude observar la estructura de la funcion "print.nls" fue de la forma en la que Carlos me habia escrito anteriormente:
> >
> >
> >
> > getAnywhere(print.nls)
> >
> >
> >
> > Esa es una de las dudas que tengo
> >
> >
> > Gabriel Antonio Trujillo Paucar
> > Estudiante de Biologia
> > 997603768
> >
> >
> >
> >
> >
> >
> > Date: Tue, 28 May 2013 20:49:26 +0100
> > From: evapcastro@yahoo.es
> > Subject: Re: [R-es] Ocultar componentes de una lista
> > To: r-help-es@r-project.org; gabriel_enter@hotmail.com
> >
> >
> >
> >
> >
> >
> > Perdón por el goteo.
> >
> > Gabriel, aquí tienes el código de nls:
> >
> > http://svn.r-project.org/R/trunk/src/library/stats/R/nls.R
> >
> > Si buscas "print.nls" verás que corresponde al modo en que se muestra el objeto que retorna la función.
> >
> > En definitiva: Tú cuando creas una función, el objeto que retornas se va a mostrar completamente salvo que exista una función print en la clase a la cual pertenece el objeto, en cuyo caso el modo de mostrarse se regirá por dicha función. Cuando entiendas el concepto de clase y lo que ello implica en cuanto a funciones print, plot, etc. ésto te parecerá muy simple.
> >
> > Saludos.
> >
> > Eva
> >
> > --- El mar, 28/5/13, Gabriel Trujillo Paucar <gabriel_enter@hotmail.com> escribió:
> >
> >
> > De: Gabriel Trujillo Paucar <gabriel_enter@hotmail.com>
> > Asunto: [R-es] Ocultar componentes de una lista
> > Para: "r-help-es@r-project.org" <r-help-es@r-project.org>
> > Fecha: martes, 28 de mayo, 2013 18:25
> >
> >
> > Saludos a todos,
> >
> >
> >
> > Quisiera saber como ocultar algunos componentes de una lista para que cuando crees una funcion solo se muestre una parte de esa lista, y que al resto tengas acceso cuando descompongas ese objeto, por ejemplo:
> >
> >
> >
> > Tengo la siguiente data:
> >
> >
> >
> > data=data.frame(Samples=1:10,Sobs=c(12.6,22.4,27.4,30.5,32.5,34.3,36,37.4,38.9,39.9))
> >
> >
> >
> > Cuando uso la funcion nls:
> >
> >
> >
> > A <- nls(Sobs~A*Samples/(1+(B*Samples)), start=list(A=5, B=1), data=data)
> >
> >
> >
> > El resultado que me arroja es :
> >
> >
> >
> > Nonlinear regression model
> > model: Sobs ~ A * Samples/(1 + (B * Samples))
> > data: data
> > A B
> > 19.0918 0.3822
> > residual sum-of-squares: 3.295
> >
> > Number of iterations to convergence: 6
> > Achieved convergence tolerance: 9.867e-06
> >
> >
> >
> > sin embargo la estructura completa del objeto que produce la funcion "nls" se puede ver con la funcion "str" :
> >
> >
> >
> > str(A)
> >
> >
> >
> > la cual es la siguiente:
> >
> >
> >
> > List of 6
> > $ m :List of 16
> > ..$ resid :function ()
> > ..$ fitted :function ()
> > ..$ formula :function ()
> > ..$ deviance :function ()
> > ..$ lhs :function ()
> > ..$ gradient :function ()
> > ..$ conv :function ()
> > ..$ incr :function ()
> > ..$ setVarying:function (vary = rep(TRUE, length(useParams)))
> > ..$ setPars :function (newPars)
> > ..$ getPars :function ()
> > ..$ getAllPars:function ()
> > ..$ getEnv :function ()
> > ..$ trace :function ()
> > ..$ Rmat :function ()
> > ..$ predict :function (newdata = list(), qr = FALSE)
> > ..- attr(*, "class")= chr "nlsModel"
> > $ convInfo :List of 5
> > ..$ isConv : logi TRUE
> > ..$ finIter : int 6
> > ..$ finTol : num 9.87e-06
> > ..$ stopCode : int 0
> > ..$ stopMessage: chr "converged"
> > $ data : symbol data
> > $ call : language nls(formula = Sobs ~ A * Samples/(1 + (B * Samples)), data = data, start = list(A = 5, B = 1), algorithm = "default", control = structure(list(maxiter = 50, tol = 1e-05, ...
> > $ dataClasses: Named chr "numeric"
> > ..- attr(*, "names")= chr "Samples"
> > $ control :List of 5
> > ..$ maxiter : num 50
> > ..$ tol : num 1e-05
> > ..$ minFactor: num 0.000977
> > ..$ printEval: logi FALSE
> > ..$ warnOnly : logi FALSE
> > - attr(*, "class")= chr "nls"
> >
> >
> >
> > Como se observa muchos de estos elmentos no son mostrados en el resultado de la funcion a menos que se use la funcion "str"
> >
> > , quisiera saber como hacer esto, ocultar algunos elementos de una lista producida por una funcion, pero igual tener acceso a esos elementos cuando se le haga el llamado con la funcion "str". Ademas como hace para que el resultado de su funcion salga de esa manera tan ordenada y no como se lo mostraria una lista (ya que el objeto final es una lista)
> >
> >
> >
> > Les agradesco de antemano por la ayuda
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Gabriel Antonio Trujillo Paucar
> > Estudiante de Biologia
> > 997603768
> >
> >
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> > [[alternative HTML version deleted]]
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
 		 	   		  
	[[alternative HTML version deleted]]

