hola a todos ... no recuerdo como hacer esto ... y lo necesito con premura ... tengo una archivo de observaciones, ordenados por meses (columnas) y años (filas), es decir un arreglo de serie temporal con frecuencia(12) mensual.Necesito transformarlo a vector manteniendo el secuencial, para poderle aplicar estadísticas sin considerar el factor tiempo. En otras palabras, colocar una fila tras otra en un vector.Se que hay una función .... no quiero hacer una sentencia for ... gracias por la ayudaPatricio [[alternative HTML version deleted]]
Hola, Esta es una manera:> r.dat<-rbind(1:4, 10:13, 20:23, 30:33)> r.dat [,1] [,2] [,3] [,4][1,] 1 2 3 4 [2,] 10 11 12 13 [3,] 20 21 22 23 [4,] 30 31 32 33> *as.vector(t(r.dat))* [1] 1 2 3 4 10 11 12 13 20 21 22 23 30 31 32 33> Saludos, Carlos Ortega www.qualityexcellence.es 2011/9/27 Patricio Fuenmayor Viteri <cpfuenmayor@hotmail.com>> > hola a todos ... no recuerdo como hacer esto ... y lo necesito con premura > ... tengo una archivo de observaciones, ordenados por meses (columnas) y > años (filas), es decir un arreglo de serie temporal con frecuencia(12) > mensual.Necesito transformarlo a vector manteniendo el secuencial, para > poderle aplicar estadísticas sin considerar el factor tiempo. En otras > palabras, colocar una fila tras otra en un vector.Se que hay una función > .... no quiero hacer una sentencia for ... gracias por la ayudaPatricio > [[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]]
O simplemente, x <- rbind(1:4, 10:13, 20:23, 30:33) c(x) Saludos, Jorge.- * * 2011/9/27 Carlos Ortega <>> Hola, > > Esta es una manera: > > > r.dat<-rbind(1:4, 10:13, 20:23, 30:33)> r.dat [,1] [,2] [,3] [,4] > [1,] 1 2 3 4 > [2,] 10 11 12 13 > [3,] 20 21 22 23 > [4,] 30 31 32 33> *as.vector(t(r.dat))* [1] 1 2 3 4 10 11 > 12 13 20 21 22 23 30 31 32 33> > > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > 2011/9/27 Patricio Fuenmayor Viteri <> > > > > > hola a todos ... no recuerdo como hacer esto ... y lo necesito con > premura > > ... tengo una archivo de observaciones, ordenados por meses (columnas) y > > años (filas), es decir un arreglo de serie temporal con frecuencia(12) > > mensual.Necesito transformarlo a vector manteniendo el secuencial, para > > poderle aplicar estadísticas sin considerar el factor tiempo. En otras > > palabras, colocar una fila tras otra en un vector.Se que hay una función > > .... no quiero hacer una sentencia for ... gracias por la ayudaPatricio > > [[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]]
me parece que esta forma es bien eficiente * * *#X el data.frame cuyas filas quiero incluir como un vector* *matrix*(*unlist*(*t*(X)),*byrow*=*T*,*ncol*=1) Prof. Julio Di Rienzo Estadística y Biometría FCA- U.N. Córdoba IBS-RARG President http://sites.google.com/site/juliodirienzo "Biometry, the active pursuit of biological knowledge by quantitative methods." (R.A. Fisher, 1948) 2011/9/27 Jorge I Velez <jorgeivanvelez@gmail.com>> O simplemente, > > x <- rbind(1:4, 10:13, 20:23, 30:33) > c(x) > > Saludos, > Jorge.- > * > > * > > 2011/9/27 Carlos Ortega <> > > > Hola, > > > > Esta es una manera: > > > > > r.dat<-rbind(1:4, 10:13, 20:23, 30:33)> r.dat [,1] [,2] [,3] [,4] > > [1,] 1 2 3 4 > > [2,] 10 11 12 13 > > [3,] 20 21 22 23 > > [4,] 30 31 32 33> *as.vector(t(r.dat))* [1] 1 2 3 4 10 11 > > 12 13 20 21 22 23 30 31 32 33> > > > > > > > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es > > > > > > 2011/9/27 Patricio Fuenmayor Viteri <> > > > > > > > > hola a todos ... no recuerdo como hacer esto ... y lo necesito con > > premura > > > ... tengo una archivo de observaciones, ordenados por meses (columnas) > y > > > años (filas), es decir un arreglo de serie temporal con frecuencia(12) > > > mensual.Necesito transformarlo a vector manteniendo el secuencial, para > > > poderle aplicar estadísticas sin considerar el factor tiempo. En otras > > > palabras, colocar una fila tras otra en un vector.Se que hay una > función > > > .... no quiero hacer una sentencia for ... gracias por la ayudaPatricio > > > [[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]] > > > _______________________________________________ > 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, Una función que puede usarse para resolver esta cuestión es la función “stack”. Si “datos” es el data frame que describes (meses en columnas y años en filas), entonces: stack(data.frame(t(datos)))[[1]] devuelve el vector deseado. Saludos Gloria ----- Original Message Follows ----- From: Patricio Fuenmayor Viteri <cpfuenmayor en hotmail.com> To: r-help-es <r-help-es en r-project.org> Subject: [R-es] data.frame a vector Date: Tue, 27 Sep 2011 11:06:31 -0500> hola a todos ... no recuerdo como hacer esto ... y lo > necesito con premura ... tengo una archivo de > observaciones, ordenados por meses (columnas) y años > (filas), es decir un arreglo de serie temporal con > frecuencia(12) mensual.Necesito transformarlo a vector > manteniendo el secuencial, para poderle aplicar > estadísticas sin considerar el factor tiempo. En otras > palabras, colocar una fila tras otra en un vector.Se que > hay una función .... no quiero hacer una sentencia for..> gracias por la ayudaPatricio > [[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 >___________________________________________________________________________ Aviso: =El contenido del presente e-mail y sus posibles adjuntos pertenecen al INTA y pueden contener información confidencial. Si usted no es el destinatario original de este mensaje y por este medio pudo acceder a dicha información, por favor solicitamos contactar al remitente y eliminar el mensaje de inmediato. Se encuentra prohibida la divulgación, copia, distribución o cualquier otro uso de la información contenida en el presente e-mail por parte de personas distintas al destinatario. This e-mail contents and its possible attachments belong to INTA and may contain confidential information. If this message was not originally addressed to you, but you have accessed to such information by this means, please contact the sender and eliminate this message immediately. Circulation, copy, distribution, or any other use of the information contained in this e-mail is not allowed on part of those different from the addressee. Antes de imprimir este mensaje, asegúrese de que sea necesario. Proteger el medio ambiente está también en su mano.
Patricio, Creo que a esta altura, ya debiste haber resuelto tu problema ;-) Sin embargo, creo importante considerar cuanto tarda cada una de las soluciones, sobretodo si lo que se tiene en mente implica matrices de gran tamano. A continuacion los tiempos de las cuatro soluciones enviadas en el transcurso del dia. Lo que se observa es que operaciones "vectorizadas" (e.g., as.vector() y c() ) proporcionan tiempos de ejecucion menores y que operar sobre data.frame()s toma un poco mas tiempo. Un saludo a todos, Jorge.- # datos x <- rbind(1:4, 10:13, 20:23, 30:33) # funciones f1 <- function(x) as.vector(t(x)) f2 <- function(x) c(x) f3 <- function(x) matrix(unlist(t(x)), byrow = TRUE, ncol = 1) f4 <- function(x) stack(data.frame(t(x)))[[1]] # tiempos B <- 100000 system.time(replicate(B, f1(x))) # user system elapsed # 1.819 0.018 1.847 system.time(replicate(B, f2(x))) # user system elapsed # 0.427 0.014 0.438 system.time(replicate(B, f3(x))) # user system elapsed # 2.776 0.015 2.779 system.time(replicate(B, f4(x))) # user system elapsed #111.102 0.876 115.743 2011/9/27 Julio Alejandro Di Rienzo <>> me parece que esta forma es bien eficiente > > * > * > > *#X el data.frame cuyas filas quiero incluir como un vector* > > *matrix*(*unlist*(*t*(X)),*byrow*=*T*,*ncol*=1) > > > > > > Prof. Julio Di Rienzo > Estadística y Biometría > FCA- U.N. Córdoba > IBS-RARG President > http://sites.google.com/site/juliodirienzo > "Biometry, the active pursuit of biological > knowledge by quantitative methods." > (R.A. Fisher, 1948) > > > > > 2011/9/27 Jorge I Velez <> > >> O simplemente, >> >> x <- rbind(1:4, 10:13, 20:23, 30:33) >> c(x) >> >> Saludos, >> Jorge.- >> * >> >> * >> >> 2011/9/27 Carlos Ortega <> >> >> > Hola, >> > >> > Esta es una manera: >> > >> > > r.dat<-rbind(1:4, 10:13, 20:23, 30:33)> r.dat [,1] [,2] [,3] [,4] >> > [1,] 1 2 3 4 >> > [2,] 10 11 12 13 >> > [3,] 20 21 22 23 >> > [4,] 30 31 32 33> *as.vector(t(r.dat))* [1] 1 2 3 4 10 11 >> > 12 13 20 21 22 23 30 31 32 33> >> > >> > >> > >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > >> > 2011/9/27 Patricio Fuenmayor Viteri <> >> > >> > > >> > > hola a todos ... no recuerdo como hacer esto ... y lo necesito con >> > premura >> > > ... tengo una archivo de observaciones, ordenados por meses (columnas) >> y >> > > años (filas), es decir un arreglo de serie temporal con frecuencia(12) >> > > mensual.Necesito transformarlo a vector manteniendo el secuencial, >> para >> > > poderle aplicar estadísticas sin considerar el factor tiempo. En otras >> > > palabras, colocar una fila tras otra en un vector.Se que hay una >> función >> > > .... no quiero hacer una sentencia for ... gracias por la >> ayudaPatricio >> > > [[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]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >[[alternative HTML version deleted]]