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.