2011-06-25 21 views
6

Beyaz boşluklarla ayrılmış veri içeren bir metin dosyam var. Beyaz alanın sayısı değişiyor ve read.table kullanamıyorum. Tavsiyeleriniz var mı (ps pencerelerdeyim). DosyadanAyırıcı ile tabloyu oku = k beyaz boşluklu k beyaz boşluk

İki satır:

bile Düzenlemenizle ile
13001 200901010200 11.49 -23.01 -999.00 
46001 200904300200 56.30 -148.00 -999.00 
+0

'read.table', değişken beyaz boşluklarla çalışır. Verilerinize küçük bir örnek gönderebilir misiniz? –

+0

@Joshua bu iki örnek satır yeterli mi? –

cevap

5

Sorun hâlâ açık değildir. Örneğiniz benim için çalışıyor.

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 

çünkü sep="" eser (o ?read.table söylediği gibi) varsayılan değeri:

ayırıcı 'Eylül = ""' ( 'read.table' için varsayılan) "dir

ise beyaz boşluk ', bir veya daha fazla boşluk, sekmeleri, satırsonları veya satırbaşı iadeleri. sep="" kullanarak

+0

oops, Sep parametresini belirtmeden denemediğime inanamıyorum ... Belki de sorumu kaldırmalıyım? –

+2

Ah, ne yaptığınızı anlıyorum. 'Sep =" "belirtmek, tam anlamıyla bir boşluk demektir. "Sep =" "varsayılan değeri" boşluk "anlamına gelir. Detaylar için '? Read.table'. –

3

(normal ifade açısından "\s+") boşluk herhangi bir miktarda mantıksal olarak eşdeğerdir.

kullanın read.delim() veya read.table() kullanarak veri okumak için:

read.delim(fileName, sep="") 

(ilk sütunda öncesi) Bu aynı zamanda lider kaldırır boşluk.