Prevent row names to be written to file when using write.csv

前端 未结 2 1179
一向
一向 2020-11-28 20:49

Commands:

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

Resulting file:

# \"\",\"v\",\"v2\"
# \"1\",5,9
# \         


        
相关标签:
2条回答
  • 2020-11-28 21:03
    write.csv(t, "t.csv", row.names=FALSE)
    

    From ?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.
    
    0 讨论(0)
  • 2020-11-28 21:17

    For completeness, write_csv() from the readr package is faster and never writes row names

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

    If you need to write big data out, use fwrite() from the data.table package. It's much faster than both write.csv and write_csv

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

    Below is a benchmark that Edouard published on his site

    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
    
    0 讨论(0)
提交回复
热议问题