Skip to content
Prev 8399 / 15379 Next

[R-es] Lectura fichero complejo

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: