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]]
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@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@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
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@gmail.com
To: gabriel_enter@hotmail.com
CC: r-help-es@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@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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Hola, Gabriel: Si consultas el código de la función nls verás, al final del todo, que hace lo siguiente: class(nls.out) <- "nls" nls.out Ello significa que está indicando que nls.out pertenece a la clase nls, con todo lo que ello conlleva; así pues, la función print de la clase nls será la que se aplique internamente cuando se haga nls.out (es decir, cuando se muestre el objeto). ¿Qué significa ésto?. Significa que nls.out tendrá la totalidad de componentes que le hayamos atribuido (de ahí que el str sea consecuente con ello) pero la manera de mostrarse (el nls.out) dependerá de cómo se haya programado la función print de la clase nls. Conclusión: Realmente no se ocultan componentes, sino que se visualizan aquellos que son de interés, y con la presentación que se elija. A lo mejor me equivoco (por favor, que alguien me corrija) pero creo que tu duda arranca de esta cuestión. Ánimo. 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]]
Hola de nuevo, Gabriel: Como sugerencia, creo que te puede venir bien consultar documentación relativa a Clases S3 (más intuitivas que las S4, entre otras razones por haber nacido antes). Tener claros esos conceptos te puede ayudar a entender código de funciones existentes y, por qué no, a utilizar clases en tu propio código. Cualquier duda, ya sabes... a preguntar!. Saludos. --- 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]]
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]]
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]]