2011-07-06 27 views
13

Tôi đang cố gắng đọc tệp csv theo định hướng cột thành R làm khung dữ liệu.read.csv row.names

dòng đầu tiên của tập tin là như vậy:

sDATE, sTIME,iGPS_ALT, ...

và sau đó mỗi dòng bổ sung là một phép đo:

4/10/2011,2:15,78, ...

khi tôi cố gắng đọc này vào R, qua

d = read.csv('filename')

Tôi gặp lỗi row.names trùng lặp vì R cho rằng cột đầu tiên của dữ liệu là tên hàng và vì tất cả các phép đo được thực hiện trong cùng ngày, các giá trị trong cột đầu tiên không thay đổi.

Nếu tôi đặt trong row.names = NULL vào read.csv cuộc gọi, tôi nhận được một cột không liên quan d$row.names tương ứng với các cột sDATE, và tất cả mọi thứ được "chuyển" một cột xuống, do đó d$sDATE sẽ phải 2:15 trong nó, không 4/10/2011 khi cần thiết.

Nếu tôi mở csv của mình trong excel, không làm gì cả và sau đó lưu nó, mọi thứ đều tuyệt vời. Tôi phải xử lý hàng trăm trong số này, vì vậy lưu thủ công trong excel không phải là điều tôi muốn. Nếu có một cái gì đó lập trình tôi có thể làm để tiền xử lý các csv trong python hoặc nếu không, đó sẽ là tuyệt vời.

+0

Điều gì về việc đặt 'row.names = 1: n', trong đó' n' là số hàng trong tệp. – nullglob

+0

Kết quả trong một 'Lỗi trong read.table (tệp = tệp, tiêu đề = tiêu đề, sep = sep, quote = quote,: không hợp lệ 'row.names' specification' – nimish

+2

Dán một vài dòng đầu tiên (và cột) của csv –

Trả lời

29

read.csv chỉ giả sử có bất kỳ tên hàng nào nếu có ít giá trị hơn trong tiêu đề hơn so với các hàng khác. Vì vậy, bằng cách nào đó bạn hoặc là thiếu một tên cột hoặc có thêm một cột bạn không muốn.

4

Bạn có thể KHÔNG có cột phụ.
Nhưng có thể xuất phát từ ô được định dạng đi lạc (hoặc cột ô) thực sự trống, ở bên phải của dữ liệu trong bảng tính gốc của bạn.
Đây là chìa khóa: Excel sẽ lưu các trường trống trong tệp CSV cho bất kỳ ô trống nào được định dạng trong trang tính của bạn. Đây là lý do tại sao bạn có thể có vấn đề này: Bởi vì khi bạn mở tệp CSV bằng Excel và lưu lại vấn đề với R biến mất.
Điều gì đang xảy ra: khi bạn kéo tệp CSV trở lại Excel, sau đó nó sẽ bỏ qua các ô trống ở bên phải hoặc bên dưới dữ liệu của bạn (vì tệp CSV không có định dạng).

Kết luận: hãy cẩn thận lưu bảng tính được định dạng dưới dạng tệp CSV để sử dụng với gói thống kê. Định dạng đi lạc có nghĩa là các trường đi lạc trong CSV.

0

Một lý do có thể có thể là dấu phẩy thêm ở cuối dòng sau dòng tiêu đề. Excel âm thầm bỏ qua chúng và xóa trong khi lưu.

Ít nhất đó là trường hợp của tôi

0

Tôi gặp phải vấn đề tương tự. Nó đã được giải quyết bằng cách thêm header=TRUE như bên dưới

tempdata <- read.csv("C:\\File.csv",header=TRUE) 

Cột đầu tiên là cột ngày được căn chỉnh chính xác.

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