2015-10-24 15 views
5

tôi cần phải đọc một bảngCách nhập tệp .tsv trong R?

enter image description here

test <- read.table(file='drug_info.tsv') 
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
# line 1 did not have 10 elements 
test <- read.table(file='drug_info.tsv',) 
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
# line 1 did not have 10 elements 
scan("drug_info.tsv") 
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
# scan() expected 'a real', got 'ChallengeName' 
scan(file = "drug_info.tsv") 
# Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
# scan() expected 'a real', got 'ChallengeName' 

Làm thế nào tôi nên đọc nó?

+1

Hãy sao chép/dán 5 hàng đầu tiên của tệp vào câu hỏi của bạn và xóa ảnh. –

+2

khá nhiều 'read.delim' với cài đặt mặc định – rawr

+1

' read.table' mặc định để sử dụng khoảng trắng được phân tách (có nghĩa là không gian hoặc tab nói chung). Nếu bạn có dấu cách, bạn có thể đặt dấu phân cách rõ ràng làm tab bằng 'sep =" \ t "'. 'read.table' hoạt động với các tệp đầu vào hợp lệ, vì vậy nếu có sự cố khi nhập dữ liệu của bạn, nó có tệp và không phải là hàm. Vì vậy, để giúp bạn, chúng tôi cần bạn chia sẻ mẫu của tệp bạn đang thực sự cố nhập, chứ không phải hình ảnh dữ liệu trong một số chương trình khác. – MrFlick

Trả lời

9

này nên làm điều đó:

read.table(file = 'drug_info.tsv', sep = '\t', header = TRUE) 
+2

Điều đó sẽ cho cùng một lỗi như được báo cáo, dòng 1 không có đủ các yếu tố – RobertH

+1

Tôi nghĩ rằng cuộc bỏ phiếu đến sớm hơn một chút ở đây, vì chúng tôi chưa có bất kỳ dữ liệu thực tế nào để thử nghiệm với bất kỳ phương pháp nào. –

5

Giả sử rằng chỉ có dòng đầu tiên không có đúng số yếu tố, và rằng đây là dòng tên cột. Bỏ qua dòng đầu tiên:

d <- read.table('drug_info.tsv', skip=1) 

Bây giờ đọc nó

first <- readLines('drug_info.tsv', n=1) 

Kiểm tra nó, sửa chữa nó như vậy mà số lượng các yếu tố phù hợp với d và sau đó

colnames(d) <- first 

Nếu điều đó không làm việc, bạn có thể làm

x <- readLines('drug_info.tsv') 

và chẩn đoán như sau:

sapply(x, length) 
Các vấn đề liên quan