Como pregunta, encontré que puedo usar .import
en el shell sqlite, pero parece que no está funcionando en el entorno R, ¿alguna sugerencia?¿Cómo importar CSV en sqlite usando RSqlite?
Respuesta
Puede usar read.csv.sql
en el paquete sqldf
. Es solo una línea de código para hacer la lectura. Suponiendo que desea crear una nueva base de datos, testingdb, y luego leer un archivo en él intente esto:
# create a test file
write.table(iris, "iris.csv", sep = ",", quote = FALSE, row.names = FALSE)
# create an empty database.
# can skip this step if database already exists.
sqldf("attach testingdb as new")
# or: cat(file = "testingdb")
# read into table called iris in the testingdb sqlite database
library(sqldf)
read.csv.sql("iris.csv", sql = "create table main.iris as select * from file",
dbname = "testingdb")
# look at first three lines
sqldf("select * from main.iris limit 3", dbname = "testingdb")
Lo anterior sqldf utiliza que utiliza RSQLite. También puede usar RSQLite directamente. Ver ?dbWriteTable
en RSQLite. Tenga en cuenta que puede haber problemas con los finales de línea si lo hace directamente con dbWriteTable
que sqldf
manejará automáticamente (generalmente).
Si su intención era leer el archivo en R inmediatamente después de leerlos en la base de datos y que realmente no necesita la base de datos después de que a continuación, ver:
http://code.google.com/p/sqldf/#Example_13._read.csv.sql_and_read.csv2.sql
que tienden a hacer eso con el paquete sqldf: Quickly reading very large tables as dataframes in R
Tenga en cuenta que en el ejemplo anterior que leí el CSV en una base de datos SQLite temp. Obviamente tendrá que cambiar ese bit.
- 1. UNIX Importar CSV grande en SQLite
- 2. cómo importar CSV usando zend
- 3. Importar archivo csv grande usando phpMyAdmin
- 4. Problema al importar archivos CSV usando FileHelpers
- 5. Importar/Exportar CSV desde SQLite de código C#
- 6. Oracle: Importar archivo CSV
- 7. Importar CSV a MySQL
- 8. importar un CSV en phpmyadmin
- 9. Exportar/Importar CSV con PHPExcel
- 10. HeidiSQL importar csv campos vacíos
- 11. MySQL importar datos CSV - ignorar algunas columnas csv
- 12. ¿Cómo importar archivos de datos csv en scikit-learn?
- 13. ¿Cómo importar un archivo csv en MySQL workbench?
- 14. Mejores prácticas para importar archivos CSV grandes
- 15. sqlite error al importar csv a través de la línea de comandos
- 16. Cargando un archivo CSV en Core Data managed sqlite db
- 17. no puede importar SQLite con Python 2.6
- 18. importar datos CSV de servicio web en Excel
- 19. Cómo importar archivos CSV a la tabla MySQL
- 20. ¿Cómo importar datos CSV/TSV a Couch DB?
- 21. La forma más rápida de importar archivos CSV en MATLAB
- 22. Importar CSV para actualizar sólo una columna en la tabla
- 23. Usando genfromtxt para importar datos CSV con valores perdidos en numpy
- 24. ¿Ignorar comillas al importar un archivo CSV en PostgreSQL?
- 25. UnicodeDecodeError en Python 3 al importar un archivo CSV
- 26. importar grandes CSV en la base de datos MySQL
- 27. Manera eficiente de importar muchos archivos csv en PostgreSQL db
- 28. Importar proyecto usando pom.xml
- 29. Usando en-memoria sqlite android
- 30. Generar esquema de tabla inspeccionando Excel (CSV) e importar datos
sqldf es fantástico! Consulte también esta respuesta http://stackoverflow.com/questions/4350131/unix-importing-large-csv-into-sqlite – Jay
, pero elimina el archivo al final de la sesión. cualquier forma de mantenerlo? – xiaodai
@xiaodai, sqldf no elimina la base de datos o el archivo de entrada en el código anterior. sqldf elimina cualquier base de datos que crea, pero sqldf nunca elimina el archivo de entrada y nunca elimina las bases de datos que no crea. En este caso, la base de datos no es creada por sqldf en sí (es creada por el SQLite de backend a través de la declaración 'attach', no por el front-sqldf) por lo que sqldf no lo eliminará. Tenga en cuenta que sqldf está destinado a la manipulación ad hoc de marcos de datos, pero si se trata de bases de datos persistentes, entonces es posible que desee utilizar RSQLite, RH2 u otro paquete de interfaz de base de datos directamente. –