2011-06-25 8 views
6

Tengo un archivo de texto con datos separados por espacios en blanco. La cantidad de espacios en blanco varía y no puedo usar read.table. Tienes consejos (ps estoy en Windows).Leer tabla con separador = k espacio en blanco con k variable

Dos líneas del archivo:

13001 200901010200 11.49 -23.01 -999.00 
46001 200904300200 56.30 -148.00 -999.00 
+0

'read.table' funciona con espacios en blanco variables. ¿Puedes publicar una pequeña muestra de los datos en tu archivo? –

+0

@Joshua son estas dos líneas de muestra suficiente? –

Respuesta

5

Incluso con su edición, el tema todavía no está claro. Tu ejemplo funciona para mí

Lines <- 
"13001 200901010200 11.49 -23.01 -999.00 
46001 200904300200 56.30 -148.00 -999.00" 

con <- textConnection(Lines) 
x <- read.table(con) 
close(con) 
x 
#  V1   V2 V3  V4 V5 
# 1 13001 200901010200 11.49 -23.01 -999 
# 2 46001 200904300200 56.30 -148.00 -999 

El valor por defecto de sep="" funciona porque (como se dice en ?read.table):

Si 'sep = ""' (el valor predeterminado para 'read.table') es el separador ' blanco espacio ', que es uno o más espacios, pestañas, nuevas líneas o retornos de carro.

+0

Vaya, no puedo creer que no haya intentado sin especificar el parámetro sep ... ¿Tal vez debería eliminar mi pregunta? –

+2

Ah, entiendo lo que estabas haciendo. Especificar 'sep =" "' significa literalmente un espacio. El valor predeterminado de 'sep =" "' significa "espacio en blanco". Ver '? Read.table' para más detalles. –

3

Usando sep="" es lógicamente equivalente a cualquier cantidad de espacio en blanco (en términos de expresiones regulares, "\s+").

Como leer los datos utilizando read.delim() o read.table(), utilice:

read.delim(fileName, sep="") 

Esto también elimina los espacios en blanco que lleva (antes de la primera columna).

Cuestiones relacionadas