Ngăn chặn tên hàng được ghi vào tệp khi sử dụng write.csv


154

Các lệnh:

t <- data.frame(v = 5:1, v2 = 9:5)
write.csv(t, "t.csv")

Hồ sơ kết quả:

# "","v","v2"
# "1",5,9
# "2",4,8
# "3",3,7
# "4",2,6
# "5",1,5

Làm cách nào để ngăn cột đầu tiên với chỉ mục hàng được ghi vào tệp?

Câu trả lời:


291
write.csv(t, "t.csv", row.names=FALSE)

Từ ?write.csv:

row.names: either a logical value indicating whether the row names of
          ‘x’ are to be written along with ‘x’, or a character vector
          of row names to be written.

12
Tôi xấu hổ vì tôi đã thử? Write.csv nhưng ... Thx aix!
watbywbarif

7
Vâng, mẹo là để hiểu rằng cột này đại diện cho tên hàng.
Vanuan

Có lẽ người ta nên đổi tên này.
stephanmg

5

Để đầy đủ, write_csv()từ readrgói nhanh hơn và không bao giờ viết tên hàng

# install.packages('readr', dependencies = TRUE)
library(readr)
write_csv(t, "t.csv")

Nếu bạn cần ghi dữ liệu lớn ra, hãy sử dụng fwrite()từ data.tablegói. Nó nhanh hơn cả hai write.csvwrite_csv

# install.packages('data.table')
library(data.table)
fwrite(t, "t.csv")

Dưới đây là một tiêu chuẩn mà Edouard công bố trên trang web của mình

microbenchmark(write.csv(data, "baseR_file.csv", row.names = F),
               write_csv(data, "readr_file.csv"),
               fwrite(data, "datatable_file.csv"),
               times = 10, unit = "s")

## Unit: seconds
##                                              expr        min         lq       mean     median         uq        max neval
##  write.csv(data, "baseR_file.csv", row.names = F) 13.8066424 13.8248250 13.9118324 13.8776993 13.9269675 14.3241311    10
##                 write_csv(data, "readr_file.csv")  3.6742610  3.7999409  3.8572456  3.8690681  3.8991995  4.0637453    10
##                fwrite(data, "datatable_file.csv")  0.3976728  0.4014872  0.4097876  0.4061506  0.4159007  0.4355469    10
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.