我从Scraperwiki导出了一个SQLite数据库(作为sqlite格式3文件?),带有.sqlite文件扩展名/文件后缀。
如何将其导入R,可能是将原始数据库表映射到单独的数据框中?
答案 0 :(得分:26)
您可以使用RSQLite包。
将整个数据存储在data.frame
s:
library("RSQLite")
## connect to db
con <- dbConnect(drv=RSQLite::SQLite(), dbname="YOURSQLITEFILE")
## list all tables
tables <- dbListTables(con)
## exclude sqlite_sequence (contains table information)
tables <- tables[tables != "sqlite_sequence"]
lDataFrames <- vector("list", length=length(tables))
## create a data.frame for each table
for (i in seq(along=tables)) {
lDataFrames[[i]] <- dbGetQuery(conn=con, statement=paste("SELECT * FROM '", tables[[i]], "'", sep=""))
}
答案 1 :(得分:2)
对于本文中遇到的其他任何人,使用purr库从顶部回答循环的一种好方法是:
lDataFrames <- map(tables, ~{
dbGetQuery(conn=con, statement=paste("SELECT * FROM '", .x, "'", sep=""))
})
也意味着您不必这样做:
lDataFrames <- vector("list", length=length(tables))