Evite que los nombres de fila se escriban en el archivo cuando use write.csv


154

Comandos:

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

Archivo resultante:

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

¿Cómo evito que la primera columna con índice de fila se escriba en el archivo?

Respuestas:


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
Me da vergüenza porque lo intenté? Write.csv pero ... ¡Gracias aix!
watbywbarif

77
Sí, el truco es entender que esta columna representa los nombres de las filas.
Vanuan

Tal vez uno debería cambiar el nombre de esto.
stephanmg

5

Para completar, write_csv()desde el readrpaquete es más rápido y nunca escribe nombres de fila

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

Si necesita escribir datos grandes, utilícelos fwrite()desde el data.tablepaquete. Es mucho más rápido que ambos write.csvywrite_csv

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

A continuación se muestra un punto de referencia que Edouard publicó en su sitio.

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.