Hola: 
 
En un intento de adaptar a mis necesidades las instrucciones de Oscar, me surge la siguiente duda:
 
Si tengo ésto,
 
 write.table(x, file=“x.txt”, sep=“\t” ),
 
donde x es un data.frame,
 
¿Cómo puedo saber a priori (antes de hacer el write.table) la longitud que va a tener cada fila en el fichero como consecuencia de la tabulación?. Necesito esa longitud para dibujar una línea separadora entre los nombres de las columnas y los datos insertados con ese write.table.
 
Gracias.
 
Eva Prieto Castro

--- El lun, 23/4/12, Oscar Perpiñán Lamigueiro <oscar.perpinan@gmail.com> escribió:


De: Oscar Perpiñán Lamigueiro <oscar.perpinan@gmail.com>
Asunto: Re: [R-es] Write y write.table
Para: "Eva Prieto Castro" <evapcastro@yahoo.es>
CC: r-help-es@r-project.org
Fecha: lunes, 23 de abril, 2012 12:31



On dom 22 abr 2012 23:29:39 CEST, Eva Prieto Castro wrote:

> Gracias a los tres.
>  
> Oscar, por favor, ¿podrías ampliarme esa información?. Yo tengo varios dataframes con datos que debo volcar en el fichero de resultados, pero adecuando la presentación; es decir, debo indicar el título de cada tabla, indicar los nombres de las columnas (a poder ser con una línea separadora por encima y otra por debajo) y a continuación los datos del dataframe, de manera tabulada; todo ello para cada uno de los 3 dataframes.
Hola,

Con lo que intuyo que intentas conseguir, se me ocurre un ejemplo sencillo que puedes adaptar a lo que tú necesites:
> x <- 1:4
> xchar <- paste(x, collapse=' ')
> xchar
[1] "1 2 3 4"
> sep <- rep('_', nchar(xchar))
> sep
[1] "_" "_" "_" "_" "_" "_" "_"
> sepchar <- paste(sep, collapse='')
> sepchar
[1] "_______"
> obj <- paste(xchar, sepchar, xchar, sepchar, sep='\n')
> obj
[1] "1 2 3 4\n_______\n1 2 3 4\n_______"
> cat(obj, file='obj.txt')

Saludos

Oscar.

> 
> --- El dom, 22/4/12, Oscar Perpiñan <oscar.perpinan@gmail.com> escribió:
> 
> 
> De: Oscar Perpiñan <oscar.perpinan@gmail.com>
> Asunto: Re: [R-es] Write y write.table
> Para: "Eva Prieto Castro" <evapcastro@yahoo.es>
> CC: r-help-es@r-project.org
> Fecha: domingo, 22 de abril, 2012 21:53
> 
> 
> 
> 
> El 22/04/2012 19:40, "Eva Prieto Castro" <evapcastro@yahoo.es> escribió:
> >
> > Hola:
> >  
> > El write y el write.table me están ralentizando bastante el proceso de volcado en fichero ASCII. ¿Conocéis algún modo más rápido de hacerlo?.
> >  
> Intuyo que la lentitud se debe a que estás haciendo mucho trabajo de apertura/escritura de fichero. Creo que conseguirás más velocidad si compones primero la salida completa en R (trabajando con la memoria) construyendo un objeto "character" que aglutine lo que necesites, y finalmente lo escribas al fichero de una sola vez.
> Oscar.

-- 
Oscar Perpiñán Lamigueiro
Dpto. Ingeniería Eléctrica
EUITI-UPM
URL: http://procomun.wordpress.com
Twitter: @oscarperpinan

	[[alternative HTML version deleted]]

