Message-ID: <BN7PR08MB4147A9BCB23FEA368E54ECB9EB650@BN7PR08MB4147.namprd08.prod.outlook.com>
Date: 2019-02-12T21:47:08Z
From: Javier Nieto
Subject: [R-es] Leer un txt a trozos
In-Reply-To: <8682a6f7-5283-0af0-3893-0b67fbba565c@gmail.com>
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
[[alternative HTML version deleted]]