[R-es] Leer un txt a trozos
Aunque prefiero desde un terminal con sed, otra forma de hacerlo sin loops en R ser?a as?:
file <- "texto.txt"
my.Data <- readChar(file, file.info(file)$size)
my.Data <- gsub("(col1 col2 col3 col4\r\n)+", "", my.Data)
my.Data <- gsub("time [0-9]+\r\n", "", my.Data)
my.Data <- gsub("end\r\n|end$", "", my.Data)
my.Data <- gsub("(\r\n)$", "", my.Data)
my.Data <- gsub("^$\r\n", "", my.Data)
my.Data <- gsub("(\r\n)+", "\n", my.Data)
my.Data <- read.table(text = my.Data, sep = " ", header = F, stringsAsFactors = F)
names(my.Data) <- c("col1", "col2", "col3", "col4")
my.Data
S?lo debes tener cuidado con los saltos de l?nea y retorno de carro as? como del separador de tus columnas.
Saludos
De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Eric <ericconchamunoz en gmail.com>
Enviado: martes, 12 de febrero de 2019 03:27 p. m. Para: Jaume Tormo; r-help-es en r-project.org Asunto: Re: [R-es] Leer un txt a trozos Si importas esa tabla de datos en una planilla electr?nica y ordenas por la primera columna, f?cilmente puedes eliminar todos los time X, end y nombres de columna y luego importar todos los datos juntos de la forma normal en R. Me ha tocado hacerlo muchas veces y es lo mas eficiente. Lo otro es hacer un peque?o loop en R pero eso le toma muchos mas tiempo a R ejecutarlo que a ti hacerlo a mano. Saludos !! Eric. On 12/02/2019 15:16, Jaume Tormo wrote: > Estimad en s eRRer en s, > > Tengo un txt que quiero importar a R. > Pero no tiene un formato adecuado para usar cosas normales, como por > ejemplo read.csv() > El formato es algo as?: > time 1 > col1 col2 col3 col4 > dato dato dato dato > dato dato dato dato > dato dato dato dato > dato dato dato dato > dato dato dato dato > end > > time 2 > col1 col2 col3 col4 > dato dato dato dato > dato dato dato dato > dato dato dato dato > dato dato dato dato > dato dato dato dato > end > > time 3 > col1 col2 col3 col4 > dato dato dato dato > dato dato dato dato > dato dato dato dato > dato dato dato dato > dato dato dato dato > end > > Lo que me gustar?a decirle a R es "ves a donde pone time y tr?ete X lineas" > o "ves a donde pone time y tr?ete lineas hasta que llegues a end" > En realidad debe ser bastante f?cil, todas las tablas empiezan con time y > acaban con end y tienen el mismo numero de filas. > He estado mirando readPlain(), scan(), readfile()... pero le puedes decir > cuantas lineas leer pero no donde empezar... creo. > ?Alguna pista de por donde puedo empezar a mirar? > > Muchas gracias. > > _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es