2012-11-05 22 views
6

Điều này tương tự như read.csv row.names và đến https://stackoverflow.com/questions/12425599/duplicated-row-names, nhưng tôi không thấy câu trả lời hữu ích.Bảng đọc lỗi 'row.names' trùng lặp. row.names = NULL thay đổi cột

Sự cố: Đang cố gắng đọc trong tệp chứa số trùng lặp trong cột đầu tiên, nhưng thay đổi tiêu đề cột khi row.names = NULL.

Tôi đang cố gắng để đọc các tập tin sau đây vào R

TripId VID TspVID VWT VCLS Week 

201110041426 2226 33889 1 0 41 

201110041501 2226 33889 1 0 41 

201110041510 2226 33889 1 0 41 

201110041557 2226 33889 1 0 41 

(đây là một đoạn trích nhỏ từ Excel về tệp CSV với hàng ngàn hàng và ~ 200 cột. Có cùng số mục trong hàng đầu tiên như trong tất cả những người khác. có bản sao trong hàng đầu tiên. các cột không thẳng hàng với các nhãn trong quan điểm này, nhưng họ làm gì trong không gian CSV.)

lệnh

> lm.table <- read.table(file= file.in, sep=",", header=TRUE) 
Error in read.table(file = file.in, sep = ",", header = TRUE) : 
    duplicate 'row.names' are not allowed 

không hoạt động. Sử dụng cột đầu tiên cho hàng.names ngụ ý rằng hàng đầu tiên có ít giá trị hơn các hàng khác, điều này không đúng. Tôi chắc chắn không muốn cột đầu tiên là row.names.

tôi cố gắng thiết lập row.names = NULL

> lm.table <- read.table(file= file.in, sep=",", header=TRUE, row.names=NULL) 

mà chạy, nhưng các cột đã được chuyển

> head(lm.table) 

    row.names TripId VID TspVID VWT VCLS  Week  Date TimeStart TimeEnd  Lat1 

1 201110010006 2226 33889  1 0 40 2011/09/30 17:06:37 17:25:16 47.5168 -122.209 

2 201110010028 2226 33889  1 0 40 2011/09/30 17:28:45 17:43:14 47.5517 -122.058 

3 201110010000 2231 45781  1 0 40 2011/09/30 17:00:00 18:02:30 32.9010 -117.193 

4 201110011407 2231 45781  1 0 40 2011/10/01 07:07:57 07:48:17 32.7044 -117.004 

Lưu ý rằng tên cột mới "row.names đã được giới thiệu và toàn bộ hàng dịch chuyển sang phải

Đây là phần đuôi của kết quả> đầu (lm.table) .Được chuyển các nhãn cột vào cột không xác định (tôi nghĩ điều này cũng cho biết số cột nhãn = số cột, mà cũng đúng từ kiểm tra.)

 FVavR FVstdR FIdlR 

1 3.959140  2 NA 

2 5.285770  20 NA 

3 4.274140  26 NA 

Bất cứ ý tưởng tại sao tôi nhận được chuyển dịch trong các cột và làm thế nào để không thay đổi và có row.names chỉ đơn giản là được tăng dần số?

+0

Bất kỳ ký tự kỳ lạ nào trong tên trường của bạn? Bạn đã thử 'read.csv' thay vì' read.table' chưa? Điều đó tiết kiệm chỉ định 'sep' và' header' và đặt 'fill = TRUE' (Mặc dù bạn nói tất cả các hàng có cùng số lượng mục nhập). – seancarmody

Trả lời

0

tôi đã sử dụng đoạn mã sau:

lm.table <- read.table("file name", header=TRUE, row.names=NULL) 

này thêm một cột bên trái với những cái tên hàng đánh số, nhưng tôi đã không thấy rằng các tên cột đã được thay đổi. Nó có thể là tên cột của bạn vẫn phù hợp với các cột bên phải, nhưng đầu ra R làm cho nó trông giống như tên đã chuyển?

+0

Các cột chắc chắn được dịch chuyển. Như tôi đã đề cập bên dưới, có dấu phẩy. Tại sao điều này khiến tiêu đề "row.names" chiếm lĩnh cột dữ liệu hiện tại và thay đổi các cột khác vẫn là một bí ẩn đối với tôi. –

5

có cùng sự cố. vừa thêm dòng này:

colnames(rec) <- c(colnames(rec)[-1],"x") 
rec$x <- NULL 
+1

Tôi nghĩ rằng bạn có thể ngưng tụ điều này thành một dòng như 'colnames (rec) <- c (colnames (rec) [- 1], NULL)' – Cole

0

Tôi đã gặp vấn đề tương tự. Tôi đã hợp nhất ngày với dấu thời gian và bây giờ tôi có thể đọc từ csv.

Bạn có thể tạo số hàng làm cột đầu tiên (nói sử dụng python) trong csv của bạn và sau đó đọc lại.

0

Vấn đề của tôi có liên quan đến lĩnh vực phân cách cho file TAB được phân định:

Nếu tôi không chỉ định tách lĩnh vực:

> condensed <- read.table("condense_report.tab", header=T) 
Error in read.table("condense_report.tab", header = T) : 
duplicate 'row.names' are not allowed 

Nếu tôi thêm các tháng chín = TAB

condensed <- read.table("condense_report.tab", header=TRUE, sep="\t") 

Sau đó, không có thông báo lỗi.

Dưới đây là nội dung tập tin của tôi (^ Tôi là nhân vật TAB, và $ là kết thúc của dấu dòng):

Mẫu^Imethod^Ispecies^Imean_frac^Istd_frac^Imean_dep^Imean_clsz^Inumrep $ asterix_potion^Imothur^IEnterococcus faecalis^I0.32290000^I0.021755985650701942^I3293.5000^I3309.7500^I4 $ asterix_potion^Imothur^IAcinetobacter baumannii^I0.28010000^I0.021539851624928375^I2869.5000^I2880.7500^I4 $

Vấn đề là với cột loài. Nó có dấu cách và R đang sử dụng cả dấu cách và tab làm dấu phân tách theo mặc định. Vì vậy, bạn có một cột phụ hơn tiêu đề theo R nếu không có tùy chọn sep được đưa ra. Đây là gốc rễ của vấn đề.

Các vấn đề liên quan