[R-es] Ocultar componentes de una lista

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Mayo 28 19:12:43 CEST 2013


Hola, ¿qué tal?

Si haces primero

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))
A <- nls(Sobs~A*Samples/(1+(B*Samples)), start=list(A=5, B=1), data=data)

y luego escribes

A

lo que ves en pantalla es lo mismo que si hubieses escrito

print(A).

Tu objeto A es de la clase "nls". Por lo tanto, la función print a la
que llamas es print.nls (dentro de las opciones que muestra
methods(print)). Si escribes

getAnywhere(print.nls)

verás el código de dicha función, cuáles de los componentes de A
muestra y de qué manera.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El día 28 de mayo de 2013 19:06, Gabriel Trujillo Paucar
<gabriel_enter en hotmail.com> escribió:
> Hola Javier,
>
>
>
> Creo que comprendio mal mi pregunta, quiero saber como ocultar algunos componentes de una lista producida por una funcion que uno crea, pero que solo esten ocultos y que pueda tener acceso a esos componentes cuando uso la funcion "str", la cual despliega todos los componentes de la lista. Además como hacer para que salga ordenado o de una forma preferida los componentes de la lista arrojada por la funcion y no de la estructura que tendria una lista comun, que suele colocar con [[]] sus componentes como coloque en el ejemplo.
>
>
>
> No se si se entiende bien mi pregunta
>
>
>
> Saludos,
>
>
> Gabriel Antonio Trujillo Paucar
> Estudiante de Biologia
>      997603768
>
>
>
>
>
>
> Date: Tue, 28 May 2013 13:36:04 -0300
> Subject: Re: [R-es] Ocultar componentes de una lista
> From: javier.ruben.marcuzzi en gmail.com
> To: gabriel_enter en hotmail.com
> CC: r-help-es en r-project.org
>
>
> Estimado Gabriel Trujillo Paucar
>
>
> Del str en el segundo renglón está fitted.
>
>
> ¿Usted pregunta algo como el siguiente ejemplo?
>
>
> fitted(A)
>
>
>
> O comprendí mal su pregunta.
>
>
> Javier Marcuzzi
>
>
>
> El 28 de mayo de 2013 13:25, Gabriel Trujillo Paucar <gabriel_enter en hotmail.com> escribió:
>
> 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 en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



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