2012-07-22 33 views
6

Tôi đang nhập csv dữ liệu chứng khoán vào R, với tên cột của mã cổ phiếu bắt đầu bằng số và chứa khoảng trắng bên trong, ví dụ: "5560 JP". Sau khi đọc vào R, tên cột được thêm bằng "X" và khoảng trắng được thay thế bằng ".", Ví dụ: "X5560.JP". Sau khi tất cả các công việc được thực hiện trong R, tôi muốn ghi dữ liệu đã xử lý trở lại csv mới, nhưng với tên cột ban đầu, ví dụ: "5560 JP" thay vì "X5560.JP", tôi có thể làm như thế nào?Tên cột R trong read.table và write.table bắt đầu bằng số và có chứa không gian

Cảm ơn bạn!

+1

Gọi biến 'df', thử tên' này (df) <- gsub ("\\.", "", Dán (substr (tên (df), 2,8))) ' – Ryogi

+4

có một đối số' check.names' để 'read.table' có thể bỏ qua thay đổi tên, tôi nghĩ vậy. Bạn có thể lưu các tên đó và sử dụng chúng ngay trước lần xuất cuối cùng. – baptiste

+0

Cảm ơn bạn vì điều đó – Joyce

Trả lời

19

Khi bạn sử dụng write.csv hoặc write.table để lưu dữ liệu của bạn vào tệp CSV, bạn có thể đặt tên cột thành bất kỳ tên nào bạn thích bằng cách đặt đối số col.names.

Nhưng điều đó giả định bạn có tên cột để có sẵn. Khi bạn đã đọc dữ liệu và R đã chuyển đổi tên, bạn đã mất thông tin đó. Để giải quyết vấn đề này, bạn có thể chặn chuyển đổi để lấy tên cột:

df <- read.csv("mydata.csv", check.names=FALSE) 
orig.cols <- colnames(df) 
colnames(df) <- make.names(colnames(df)) 

[your original code] 

write.csv(df, col.names=orig.cols) 
+0

Thật tuyệt, cảm ơn nhiều !!! – Joyce

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