example databases commands sqlite r csv

commands - sqlite show databases



Exportar CSV sin col.names (3)

Necesito tomar un data.frame y exportarlo a un archivo CSV (u otra cosa, pero CSV me pareció el formato más fácil y mejor formado) para poder importarlo en una base de datos SQLite.

Sin embargo, parece que write.csv() requiere que escriba una línea de encabezado, y el comando .import de SQLite requiere que no tenga una línea de encabezado. Entonces esa es una falta de coincidencia.

Esto es lo que sucede si trato de omitir la línea del encabezado:

> write.csv(mydf, "/tmp/mydf.csv", row.names=F, col.names=F) Warning message: In write.csv(mydf, "/tmp/mydf.csv", row.names = F, col.names = F) : attempt to set ''col.names'' ignored

Tengo que preguntarme por qué se aplica eso en primer lugar, el manual dice: "Estas envolturas son deliberadamente inflexibles: están diseñadas para asegurar que se utilicen las convenciones correctas para escribir un archivo válido. Intenta cambiar append , col.names , sep , dec o qmethod son ignorados, con una advertencia ". Pero no conozco nada en la especificación o en otra parte que requiera nombres de columna; de hecho, la mayoría de las herramientas (Excel, etc.) no las tratan especialmente.


Puede importarlo directamente a SQLite. A continuación, se importa el marco de datos integrado BOD en la base de datos SQLite my.db (creando my.db si aún no existe).

library(RSQLite) con <- dbConnect(SQLite(), dbname = "my.db") dbWriteTable(con, "BOD", BOD, row.names = FALSE) dbDisconnect(con)


Use write.table () en su lugar como sigue:

write.table(mydf, "/tmp/mydf.csv", row.names=F, col.names=F, sep=",")


Si no puedes vencerlos, únete a ellos.

Si cambia a write.table() (lo que write.csv() llama de todos modos) está dorado:

R> write.table(trees, file="/tmp/trees.csv", + row.names=FALSE, col.names=FALSE, sep=",") R> system("head /tmp/trees.csv") 8.3,70,10.3 8.6,65,10.3 8.8,63,10.2 10.5,72,16.4 10.7,81,18.8 10.8,83,19.7 11,66,15.6 11,75,18.2 11.1,80,22.6 11.2,75,19.9 R>