[R-es] problema con file

Sebastian Kruk residuo.solow en gmail.com
Vie Jul 9 15:36:40 CEST 2010


Justamente utilicé scan para utilizar menos recursos pues el archivo
de texto puede llegar a ser muy grande. Si obtengo una lista integrada
por 16 vectores correspondientes a las 16 variables me sería de mucha
utilidad.

El archivo de texto el la bitácora de un sitio web que funciona con
Microsoft Internet Information Services 5.0, los campos que tiene son:
date time c-ip cs-username s-ip s-port cs-method cs-uri-stem
cs-uri-query sc-status sc-bytes cs-bytes time-taken cs(User-Agent)
cs(Cookie) cs(Referer), las primeras tres líneas son de comentarios,
comienzan con # y cada línea corresponde a una observación, está
entrecomillada y cada uno de los valores está separado por un espacio.

Un ejemplo de línea sería:

"2007-12-03 13:50:17 200.40.203.197 - 200.40.51.20 80 GET
/localidades/img/nada.gif - 200 328 447 0
Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322)
ASPSESSIONIDSQCBSQAB=JOLECDCCBFCKPOFLGDLHMENA
http://www.algo.com.uy/ventas/ventas.asp"

Saludos,

Sebastián.

El día 9 de julio de 2010 09:17, Carlos Ortega <coforfe en gmail.com> escribió:
> Hola,
> Claro, el comportamiento es correcto, porque scan devuelve un vector o una
> lista a diferencia de read.table.
> De la ayuda de scan:
> "...
> The value of ‘what’ can be a list of types, in which case
>      ‘scan’ returns a list of vectors with the types given by the
>      types of the elements in ‘what’.  This provides a way of
>      reading columnar data.
> ..."
> Destaco en negrita el propósito fundamental para el uso de scan, que creo
> que no es tu caso.
> ¿Nos podrías pasar el fichero de entrada o una parte de él para comprobar
> qué problemas hay para usar read.table?.
> Saludos,
> Carlos.
>
> 2010/7/8 Sebastian Kruk <residuo.solow en gmail.com>
>>
>> Para hacerlo más rápido utilicé scan directamente:
>>
>> a <- scan(file(archivo,encoding="UCS-2LE"),comment.char="#",
>> what = rep(c(rep("character",5),"numeric", rep("character",3),
>> rep("numeric",4), rep("character",3)),200),quote = "", sep= " ",dec=".")
>>
>> Me queda un vector de 3200 valores en vez de una matriz de 16
>> variables y 200 ocurrecias. Además todos quedan de tipo "character".
>>
>> Saludos,
>>
>> Sebastián.
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>



Más información sobre la lista de distribución R-help-es