Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20141216/a0a498e4/attachment.html> ------------ próxima parte ------------ An embedded and charset-unspecified text was scrubbed... Name: smallSPN.txt URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20141216/a0a498e4/attachment.txt>
No esta facil, pero se me ocurre que se podria hacer en forma secuencial ... sin embargo, veo una dificultad extra si quieres recuperar la informacion que esta en los encabezados ... que informacion del encabezado te interesa ? si fuera solo el año no habria tanto problema en agregarlo si fueran correlativos a partir de un numero conocido, pero agregar el numero de observadores, por ejemplo, no parece tan facil ... estoy escribiendo el codigo suponiendo que solo el año del encabezado te interesa y en un proximo mail lo envio slds, eric. On Tue 16 Dec 2014 12:41:25 CLST, "Hector Gómez Fuerte" wrote:> Buenas tardes. > A ver si alguien me puede echar una mano con este problema, que me > parece me está superando. El fichero de texto que adjunto es la serie > del sunspot number desde 1610 hasta 1614 (el que realmente quiero > leer es mucho más grade, llega hasta 1995 con el mismo formato). Cada > tabla contiene los valores diarios para un año (las medias no me > interesan). Quiero leerlo con el R y convertirlo en una serie temporal > estándar univariante. > Saludos y muchas gracias. > > Héctor Gómez > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo.
Buenas tardes. El siguiente código me ha funcionado con tu fichero de datos. # Lectura datos <- list() for( i in 1:5){ datos[[i]] <- read.table("smallSPN.txt", skip=6*i+(i-1)*33, nrows=31) datos[[i]]$V14 <- 1610+(i-1) } datos.t <- NULL for (i in 1:length(datos)){ datos.t <- rbind(datos.t, datos[[i]]) } datos.t El resultado es un dat.frame. De los dos bucles el segundo no es necesario, hay una función que te permite realizar el rbind de forma repetida pero en estos momentos no recuerdo su nombre. Un saludo El 16 de diciembre de 2014, 16:41, "Hector Gómez Fuerte" <hector3 en gmx.es> escribió:> > Buenas tardes. > A ver si alguien me puede echar una mano con este problema, que me parece > me está superando. El fichero de texto que adjunto es la serie del sunspot > number desde 1610 hasta 1614 (el que realmente quiero leer es mucho más > grade, llega hasta 1995 con el mismo formato). Cada tabla contiene los > valores diarios para un año (las medias no me interesan). Quiero leerlo con > el R y convertirlo en una serie temporal estándar univariante. > Saludos y muchas gracias. > > Héctor Gómez > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Jose Luis [[alternative HTML version deleted]]
Esto funciona con los datos que enviaste ... es carretero porque no se mucho de R y seguro alguien lo puede refinar setwd("/home/neo/Desktop") # "n" es el numero de tablas que hay que leer, al menos en esta version simple de codigo hay que saberlo de antemano n <- 4 # indice q controla la lectura i <- 0 # df para reunir todos los datos todoslosdatos <- data.frame(1,2,3,4,5,6,7,8,9,10,11,12,13,14) colnames(todoslosdatos ) <- c("Day","Jan","Feb","MAr","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","Agno") # lectura secuencial de los trozos de tablas y formacion de un data.frame con todo for (i in 0:n) { # para calcular el salto que debe dar cada vez que lee el archivo salto <- 8 + 39*i # lectura del trozo de archivo que interesa datos <- read.table("smallSPN.txt", header=FALSE, sep="", na.strings "NA", skip=salto, nrows=31) # al trozo leido hay que agregarlo una columna con el año para diferenciarlo del resto datos[,14] <- 1610 + i # encabezado para las columnas, para que funcione rbind colnames(datos ) <- c("Day","Jan","Feb","MAr","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","Agno") # unir el trozo leido con los demas todoslosdatos <- rbind(todoslosdatos,datos) # pasar al siguiente trozo de tabla i <- i + 1 } Tienes que borra la primera fila del df que existe solo porque no se hacer un data.frame vacio. Haaa un detalle, introduje manualmente dos filas extras al comienzo del archivo original que enviaste para que coincidiera el numero de filas entre cada trozo de archivo que hay que leer y no tener que considerar eso en el codigo, me explico claramente ? ... quiero decir que entre tablas de datos hay 8 filas, en cambio, antes de la primera tabla hay solo 6, de modo que agregue 2 a mano :) Ojala te sirva, Slds, eric. On 16/12/14 12:41, "Hector Gómez Fuerte" wrote:> Buenas tardes. > A ver si alguien me puede echar una mano con este problema, que me > parece me está superando. El fichero de texto que adjunto es la serie > del sunspot number desde 1610 hasta 1614 (el que realmente quiero leer > es mucho más grade, llega hasta 1995 con el mismo formato). Cada tabla > contiene los valores diarios para un año (las medias no me interesan). > Quiero leerlo con el R y convertirlo en una serie temporal estándar > univariante. > Saludos y muchas gracias. > > Héctor Gómez > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Forest Engineer Master in Environmental and Natural Resource Economics Ph.D. student in Sciences of Natural Resources at La Frontera University Member in AguaDeTemu2030, citizen movement for Temuco with green city standards for living Nota: Las tildes se han omitido para asegurar compatibilidad con algunos lectores de correo.