Estimados su ayuda, tengo un total de 20 matrices las cuales deseo colocarlas como componentes de la lista, es decir matrices<-list(matriz1,matriz2,matriz3,...,matriz20) existe alguna manera de hacer esto de manera automatica ya que puede que exista un mayor numero de matrices por ejemplo 100, donde el ingreso de una por una puede resultar un poco cansado. A su vez a las matrices ingresadas como componentes de la lista 1:100 deseo obtener la matriz triangular superior de cada una de ellas, se que es mediante la funcion upper.tri(), Mi pregunta existe alguna forma o una funcion que me permita aplicar directamente la función upper.tri() a todas las componentes de forma directa, algo como por ejemplo matrices_sup<-lapply(matrices, function(matrices) upper.tri()) Saludos y gracias por su respuesta. [[alternative HTML version deleted]]
Hola, Para el tema del almacenamiento, prueba con esta función (incluyo un ejemplo de funcionamiento): #-------------------------------- # Funcion foo <- function(num.veces) { env1 <-parent.frame() tmp <- paste("matriz", 1:num.veces, sep="", collapse=",") tmp2 <- paste("Matriz <- list(",tmp,")") eval( parse(text=tmp2), env1) } #Ejemplo matriz1 <- matrix(1:10); matriz1 matriz2 <- matrix(letters[1:10]) ; matriz2 foo(2) Matriz #-------------------------------- Para la segunda parte, ahora no puedo mirarlo... Saludos, Carlos Ortega www.qualityexcellence.es El 6 de marzo de 2013 23:36, Alejandro Ayala <alejo.ayalab@gmail.com>escribió:> Estimados su ayuda, tengo un total de 20 matrices las cuales deseo > colocarlas como componentes de la lista, es decir > > matrices<-list(matriz1,matriz2,matriz3,...,matriz20) existe alguna manera > de hacer esto de manera automatica ya que puede que exista un mayor numero > de matrices por ejemplo 100, donde el ingreso de una por una puede resultar > un poco cansado. > > A su vez a las matrices ingresadas como componentes de la lista 1:100 deseo > obtener la matriz triangular superior de cada una de ellas, se que es > mediante la funcion upper.tri(), Mi pregunta existe alguna forma o una > funcion que me permita aplicar directamente la función upper.tri() a todas > las componentes de forma directa, algo como por ejemplo > > matrices_sup<-lapply(matrices, function(matrices) upper.tri()) > > Saludos y gracias por su respuesta. > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Alejandro, Puedes utilizar lo siguiente: d_sup <- lapply(ls(pattern = "matriz"), function(m){ M <- get(m) M[upper.tri(M)] }) d_sup Saludos, Jorge.- 2013/3/7 Alejandro Ayala <>> Estimados su ayuda, tengo un total de 20 matrices las cuales deseo > colocarlas como componentes de la lista, es decir > > matrices<-list(matriz1,matriz2,matriz3,...,matriz20) existe alguna manera > de hacer esto de manera automatica ya que puede que exista un mayor numero > de matrices por ejemplo 100, donde el ingreso de una por una puede resultar > un poco cansado. > > A su vez a las matrices ingresadas como componentes de la lista 1:100 deseo > obtener la matriz triangular superior de cada una de ellas, se que es > mediante la funcion upper.tri(), Mi pregunta existe alguna forma o una > funcion que me permita aplicar directamente la función upper.tri() a todas > las componentes de forma directa, algo como por ejemplo > > matrices_sup<-lapply(matrices, function(matrices) upper.tri()) > > Saludos y gracias por su respuesta. > > [[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]]
El 6 de marzo de 2013 18:36, Jorge I Velez <jorgeivanvelez@gmail.com>escribió:> Alejandro, > > Puedes utilizar lo siguiente: > > d_sup <- lapply(ls(pattern = "matriz"), > function(m){ > M <- get(m) > M[upper.tri(M)] > }) > d_sup > > Saludos, > Jorge.- > > > 2013/3/7 Alejandro Ayala <> > >> Estimados su ayuda, tengo un total de 20 matrices las cuales deseo >> colocarlas como componentes de la lista, es decir >> >> matrices<-list(matriz1,matriz2,matriz3,...,matriz20) existe alguna manera >> de hacer esto de manera automatica ya que puede que exista un mayor numero >> de matrices por ejemplo 100, donde el ingreso de una por una puede >> resultar >> un poco cansado. >> >> A su vez a las matrices ingresadas como componentes de la lista 1:100 >> deseo >> obtener la matriz triangular superior de cada una de ellas, se que es >> mediante la funcion upper.tri(), Mi pregunta existe alguna forma o una >> funcion que me permita aplicar directamente la función upper.tri() a todas >> las componentes de forma directa, algo como por ejemplo >> >> matrices_sup<-lapply(matrices, function(matrices) upper.tri()) >> >> Saludos y gracias por su respuesta. >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > Muchas gracias me fue de gran utilidad...[[alternative HTML version deleted]]