[R-es] Leer csv separado por comas y por espacios

javier.ruben.marcuzzi en gmail.com javier.ruben.marcuzzi en gmail.com
Lun Ene 9 14:37:03 CET 2017


Estimado Jesús Para Fernández

Por regla al guardar la información hay que informar donde se separa, en su caso hay dos casos, comas y espacios, no se como llego a eso, pero yo intentaría de escribir nuevamente el fichero con los datos, ¿Cuántos datos son? Porque si entran en la capacidad de una hoja de cálculos, posiblemente con Excel al importarlos pueda marcar la separación de campos, luego guardar esto en otro archivo e importarlo en R. Posiblemente es más sencillo que awk, pero también el trabajar con cadenas puede ser muy útil (yo se hacerlo), la única recomendación es conocer muy bien la separación, porque puede ser que dentro de los datos hay una condición válida como cadena reconocida por el lenguaje informático pero que no es una separación real de datos. Por ejemplo, yo vivo en una provincia que se llama Santa Fe, si se busca una cadena donde hay un espacio entre las palabras como separación de datos, estaría cometiendo un error, por otro lado si busco más de dos espacios en blanco entre palabras como separación de datos, posiblemente vino espumoso, quedaría como un dato, cuándo en realidad puede ser bebida vino, categoría de bebida espumoso.

En su ejemplo no hay palabras, hay números, un posible error puede ser la separación decimal o puntuación de miles (, y .), particularidad que se define en el sistema operativo y si se comparten datos por ahí viene un archivo con alguna codificación no pensada.

Javier Rubén Marcuzzi

De: Jesús Para Fernández
Enviado: lunes, 9 de enero de 2017 10:06
Para: Carlos Ortega
CC: r-help-es en r-project.org
Asunto: Re: [R-es] Leer csv separado por comas y por espacios

Pens� que ser�a mucho m�s sencillo.


Al final optar� por lo que he hecho, el strstrip


Gracias de todos modos

Jes�s


________________________________
De: Carlos Ortega <cof en qualityexcellence.es>
Enviado: lunes, 9 de enero de 2017 12:49
Para: Jes�s Para Fern�ndez
Cc: r-help-es en r-project.org
Asunto: Re: [R-es] Leer csv separado por comas y por espacios

Hola,

El par�metro "sep" de "read.csv()" ha de ser �nico. No puedes utilizar varias opciones, aunque es cierto que en la documentaci�n no lo advierte. Por lo que tienes que utilizar otra estrategia para leer el fichero.

Te sugerir�a varias cosas:

  *   Probar con la funci�n "fread()" del paquete "data.table" que es algo m�s inteligente que read.csv. Aunque no tengo claro que realmente te vaya a funcionar... pero por probar...
  *   Una segunda opci�n es un poco m�s trabajosa que es el leer el fichero con "readLines", de esta forma te generar� un data.frame con una fila por l�nea del fichero. Luego tendr�s que construir una l�gica para que si la l�nea tiene "," como separador separes las variables y si el separador es un "tab" que haga lo propio.
  *   Otra opci�n m�s limpia y sencilla es pre-procesar el fichero en el SO con funciones del tipo "sed", "awk" y dejarlo con el formato, separadores que m�s te interese.
  *   Y si el fichero tiene bloques con "," y otros bloques con "tab" como separador, puedes utilizar "read.table" y decir que vaya saltando el n�mero de filas, que no tienen el separador que has definido...

Saludos,
Carlos Ortega
www.qualityexcellence.es<http://www.qualityexcellence.es>
[http://qualityexcellence.es/images/1_blanco.jpg]<http://www.qualityexcellence.es/>

QualityExcellence<http://www.qualityexcellence.es/>
www.qualityexcellence.es
QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua


El 9 de enero de 2017, 9:42, Jes�s Para Fern�ndez <j.para.fernandez en hotmail.com<mailto:j.para.fernandez en hotmail.com>> escribi�:
Buenas compa�eros!


Tengo una duda y no se muy bine como resolverlo. Tengo un csv en el que hay variables separadas por comas y otras esparadas por espacios (tabulaciones). Algo as�


V1    V2   V3,V4

M1   123   2512,2522

M2   117   2852,3521

...................................



Para leerlo he probado poniendo:


datos<-read.csv("c:/datos/listado.txt",sep=c(",","","\t"),header=F)


Pero no me funciona, es decir, la separada por el espacio en blanco no la distingue y la mete en lo mismo.


Lo he solucionado hacinedo un strsplit pero es un poco co�azo andar parcheando algo que tendria que leer bien directametne.


�Alguna idea de porque no est� cogiendo bien el fichero?


Gracias

Jes�s

        [[alternative HTML version deleted]]


_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es



--
Saludos,
Carlos Ortega
www.qualityexcellence.es<http://www.qualityexcellence.es>

	[[alternative HTML version deleted]]



	[[alternative HTML version deleted]]



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