Empêcher l'écriture des noms de ligne dans le fichier lors de l'utilisation de write.csv


154

Commandes:

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

Fichier résultant:

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

Comment empêcher l'écriture de la première colonne avec l'index de ligne dans le fichier?

Réponses:


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

De ?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
J'ai honte parce que j'ai essayé? Write.csv mais ... Thx aix!
watbywbarif

7
Ouais, l'astuce est de comprendre que cette colonne représente les noms de lignes.
Vanuan

On devrait peut-être renommer ça.
stephanmg

5

Pour être complet, à write_csv()partir du readrpackage est plus rapide et n'écrit jamais les noms de ligne

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

Si vous avez besoin d'écrire du Big Data, utilisez à fwrite()partir du data.tablepackage. C'est beaucoup plus rapide que les deux write.csvetwrite_csv

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

Ci-dessous un benchmark qu'Edouard a publié sur son 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.