Hola,

Mira este ejemplo:

#################################

Lines  <- "DeployID Date.Time LocationQuality Latitude Longitude
STM05-1 2005/02/28 17:35 Good -35.562 177.158
STM05-1 2005/02/28 19:44 Good -35.487 177.129
STM05-1 2005/02/28 23:01 Unknown -35.399 177.064
STM05-1 2005/03/01 07:28 Unknown -34.978 177.268
STM05-1 2005/03/01 18:06 Poor -34.799 177.027
STM05-1 2005/03/01 18:47 Poor -34.85 177.059
STM05-2 2005/02/28 12:49 Good -35.928 177.328
STM05-2 2005/02/28 21:23 Poor -35.926 177.314
"

DF <- read.table(textConnection(Lines), skip = 1,  as.is = TRUE, sep="\t",
                 col.names = c("Id", "Date", "Time", "Quality", "Lat",
"Long"))

lin.v<-paste0(as.character(DF[1,]), sep="\t")
lin2.v<-paste(as.character(DF[1,]), sep="\t")
lin.v
lin2.v
nchar(lin.v, type='chars')
nchar(lin2.v, type='chars')

#################################

Los campos de Lines, están separados por "\t".
El resultado sobre el número de caracteres para la primera línea es este:

> lin.v<-paste0(as.character(DF[1,]), sep="\t")> lin2.v<-paste(as.character(DF[1,]), sep="\t")> lin.v[1] "STM05-1\t"    "2005/02/28\t" "17:35\t"
[4] "Good\t"       "-35.562\t"    "177.158\t"   > lin2.v[1] "STM05-1"
  "2005/02/28" "17:35"      "Good"
[5] "-35.562"    "177.158"   > nchar(lin.v, type='chars')[1]  8 11  6
5  8  8> nchar(lin2.v, type='chars')[1]  7 10  5  4  7  7


Vaya, el "\t" introduce un carácter nuevo.
Sumando la salida de nchar(), tienes la longitud total de la cadena, pero
juntándolo con paste0()

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 25 de abril de 2012 12:41, Eva Prieto Castro <evapcastro@yahoo.es>escribió:

> 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]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]

