2011-06-25 37 views
6

Tôi có tệp văn bản có dữ liệu được phân tách bằng khoảng trắng. Số lượng khoảng trắng là khác nhau và tôi không thể sử dụng read.table. Bạn có lời khuyên (ps tôi đang trên cửa sổ).Đọc bảng có dấu cách = k khoảng trắng với biến k

Hai dòng từ tập tin:

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

'read.table' hoạt động với các khoảng trắng khác nhau. Bạn có thể đăng một mẫu nhỏ dữ liệu trong tệp của mình không? –

+0

@Joshua là hai dòng mẫu này đủ? –

Trả lời

5

Ngay cả với chỉnh sửa của bạn, vấn đề này vẫn chưa rõ ràng. Ví dụ của bạn làm việc cho tôi.

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 

Giá trị mặc định của sep="" công trình vì (vì nó nói trong ?read.table):

Nếu 'Tháng Chín = ""' (mặc định cho 'read.table') tách là ' trắng không gian ', đó là một hoặc nhiều không gian, tab, dòng mới hoặc trả về vận chuyển.

+0

oops, tôi không thể tin rằng tôi đã không cố gắng mà không xác định tham số sep ... Có lẽ tôi nên loại bỏ câu hỏi của tôi? –

+2

Ah, tôi hiểu những gì bạn đang làm. Chỉ định 'sep =" "' nghĩa là một khoảng trắng. Mặc định 'sep =" "' có nghĩa là "khoảng trống". Xem '? Read.table' để biết chi tiết. –

3

Sử dụng sep="" tương đương về mặt logic với bất kỳ khoảng trắng nào (theo thuật ngữ regex, "\s+").

Để đọc dữ liệu của bạn sử dụng read.delim() hoặc read.table(), sử dụng:

read.delim(fileName, sep="") 

này khoảng trắng cũng loại bỏ hàng đầu (trước khi cột đầu tiên).