2012-12-07 42 views
8

Tôi muốn viết ma trận kết quả của mình vào tệp csv.ghi vào tệp csv bằng dấu phân cách

tôi đã sử dụng mã

write.table(result, file ="F:\\filename.csv",row.names=FALSE,sep=",") 

Nhưng kết quả của tôi đã có một số "" giá trị, vì vậy những gì loại hình sử dụng dấu phân cách để viết các loại dữ liệu.

Tôi đã sử dụng 'tab' làm dấu phân cách nhưng tại thời điểm đó nó không được chia làm cột, các giá trị được chèn vào một cột đơn.

Tôi cũng đã cố gắng

nhưng lần này nội dung cột duy nhất được tách ra thành nhiều cột.

+1

Có thể cho chúng tôi biết bạn muốn dữ liệu của mình được viết như thế nào. Thông thường, ',' bên trong dữ liệu không quan trọng trong 'write.table', bởi các chuỗi mặc định được trích dẫn bởi' "'. – Thilo

+2

theo kiểu cổ điển ở các quốc gia nơi ',' được sử dụng như dấu tách thập phân (ví dụ như Pháp và Đức) Các tệp "csv" thực sự được phân tách bằng dấu hai chấm (đó là mặc định trên tất cả các chương trình bảng tính nếu bạn cài đặt các phiên bản cụ thể của từng quốc gia đó). .names = FALSE, sep = ";") 'sẽ khá cổ điển. Nếu không, đối với một tệp phân cách bằng tab, đối số là' sep = "\ t" '. – plannapus

+0

@plannapus Đặt câu trả lời đó là? – Roland

Trả lời

16

Ở các quốc gia nơi mà , được sử dụng làm dấu tách thập phân (ví dụ như Pháp và Đức), tệp "csv" thực sự được phân tách bằng dấu hai chấm (nó là mặc định trên tất cả chương trình bảng tính nếu bạn cài đặt các phiên bản cụ thể của quốc gia đó).
Vì vậy, write.table(result, file ="F:\\filename.csv",row.names=FALSE,sep=";") sẽ khá cổ điển.
Vì vậy, cổ điển thực sự rằng có một wrapper cho nó:

write.csv2(result, file ="F:\\filename.csv",row.names=FALSE) 

write.csv2 sử dụng sep=";"dec="," như mặc định.

Nếu không, đối với các tệp được phân tách bằng tab, đối số là sep="\t".

+1

@Roland, nhưng – user1790894

+0

@ user1790894 bạn có thể hiển thị mẫu dữ liệu của mình bằng cách sử dụng 'dput',' str' hoặc 'head' mà không thấy dữ liệu của bạn, tôi thực sự không hiểu tại sao và cách nó không hoạt động . – plannapus

0

Tôi có xu hướng sử dụng qmethod = "double" và do đó các trình tách không can thiệp vào nội dung của trường.

0

Bạn có thể sử dụng dấu phân cách bạn muốn, cũng lưu ý rằng bạn có thể sử dụng chuỗi làm dấu phân cách. Vì vậy, một số ví dụ không chuẩn có thể là "||" hoặc "|/|". Điều này đặc biệt hữu ích nếu một trong các trường đã chứa một số loại phân tách khác như ";" "," ":" hoặc "|".

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