Hola, Carlos:
Â 
Gracias.
Â 
Eso lo he probado (paste0), pero me convierte a "1" todos los valores de mi fila del dataframe. Estoy intentando averiguar por quÃ© sucede eso...
Â 
Un saludo
Eva Prieto Castro

--- El miÃ©, 25/4/12, Carlos Ortega <cof@qualityexcellence.es> escribiÃ³:


De: Carlos Ortega <cof@qualityexcellence.es>
Asunto: Re: [R-es] Write y write.table
Para: "Eva Prieto Castro" <evapcastro@yahoo.es>
CC: r-help-es@r-project.org
Fecha: miÃ©rcoles, 25 de abril, 2012 13:13


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



biÃ³:

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

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

> CC: r-help-es@r-project.org
> Fecha: domingo, 22 de abril, 2012 21:53
>
>
>
>

³:
> >
> > 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]]

