HOWTO · R

Exportar marco de datos a CSV en R

Aprenda a exportar un marco de datos de R a CSV con write.csv(), write.table(), data.table::fwrite() y readr::write_csv().

En esta página

Usa write.csv() de Base R para guardar un marco de datos como archivo separado por comas, o usa write.table() si quieres elegir el delimitador. data.table::fwrite() y readr::write_csv() son alternativas de paquetes. Los ejemplos siguientes usan un mismo marco de datos pequeño y explican dónde se guarda cada archivo y si se incluyen los nombres de fila.

Exportar un marco de datos con write.csv() y write.table()

El siguiente ejemplo de Base R guarda ambos formatos en el directorio temporal de R y comprueba que los archivos existan. La ejecución registrada finalizó correctamente y ambas comprobaciones de existencia devolvieron TRUE:

people <- data.frame(
  Name = c("Alice", "Bob", "Charlie"),
  Age = c(25, 30, 35),
  City = c("New York", "Los Angeles", "Chicago")
)

csv_path <- file.path(tempdir(), "people.csv")
table_path <- file.path(tempdir(), "people-table.csv")

write.csv(people, file = csv_path, row.names = FALSE)
write.table(people, file = table_path, sep = ",", row.names = FALSE, col.names = TRUE)

file.exists(c(csv_path, table_path))
[1] TRUE TRUE

file.path(tempdir(), ...) indica explícitamente dónde se guardan los archivos y evita depender del directorio de trabajo actual. Para guardarlos de forma permanente, sustituye las rutas temporales por un nombre de archivo, como "people.csv", para escribirlo en el directorio de trabajo, o indica una ruta completa. Las barras diagonales funcionan en las rutas de Windows; por ejemplo, "C:/Users/you/Documents/people.csv". También puedes usar file.path() para unir componentes de una ruta compatible con el sistema operativo actual.

write.csv() es una forma práctica de usar write.table() configurada para datos separados por comas. Ambas funciones incluyen los nombres de fila de forma predeterminada; con row.names = FALSE se omiten, mientras que row.names = TRUE los escribe como un campo adicional al principio. write.table() permite elegir el separador con sep; usa sep = "," para datos separados por comas y conserva col.names = TRUE si quieres que la primera línea contenga los nombres de las columnas. La llamada a file.exists() devuelve un valor lógico por cada ruta indicada, por lo que permite confirmar que se crearon los archivos. Para revisar su contenido, ábrelos en un editor de texto o en una aplicación de hojas de cálculo.

Exportar un marco de datos con data.table::fwrite()

El paquete data.table ofrece fwrite() para escribir un marco de datos o una tabla de datos en un archivo delimitado. Instala el paquete una sola vez con install.packages("data.table") y luego cárgalo con library(data.table) antes de llamar a la función. Para el marco de datos people del ejemplo anterior, data.table::fwrite(people, file.path(tempdir(), "people-fwrite.csv")) escribe un archivo separado por comas y omite los nombres de fila. La forma con espacio de nombres, data.table::fwrite(), indica explícitamente qué paquete proporciona la función. La ejecución comprobada anterior solo abarca Base R; este ejemplo del paquete se ofrece como guía de uso y no se ha ejecutado.

Exportar un marco de datos con readr::write_csv()

El paquete readr es otra opción. Instálalo una sola vez con install.packages("readr") y luego cárgalo con library(readr), o llama a la función usando su espacio de nombres. Para los mismos datos, readr::write_csv(people, file.path(tempdir(), "people-readr.csv")) escribe valores separados por comas sin incluir los nombres de fila e incluye los nombres de las columnas. A diferencia de write.table(), write_csv() no ofrece un argumento para elegir el delimitador porque escribe archivos CSV. La ejecución comprobada anterior solo abarca Base R; este ejemplo de readr se ofrece como guía de uso y no se ha ejecutado.