2016-08-15 60 views
2

如何从GitHub存储库将SQLite数据库导入到我的R环境中?从GitHub导入SQLite数据库

如果我有我的本地硬盘,我可以做以下SQLite数据库,我想概括这对于SQLite数据库的存储在GitHub上:

library("RSQLite") 
db <- dbConnect(SQLite(), dbname="/path_to_file/database.sqlite") 
dbListTables(db) 
players<- dbGetQuery(db,' 
         select column1 
         from table1 
         ') 

链接我要的例子导入如下: https://github.com/cmohamma/jeopardy

如果无法从网络连接将SQLite数据库加载到内存中,我想至少知道如何通过命令行界面将它下载到磁盘。

我试图通过RSelenium访问存储库,但我不知道如何让浏览器(Chrome)从GitHub下载任何东西 - 我可以导航到存储库中的文件,但我无法确定下载按钮。

+1

这家伙说,SQLite数据库必须保存到磁盘,而不是仅仅存储在内存中...所以你必须先下载文件然后你可以阅读它使用你的代码... http://stackoverflow.com/questions/21963020/reading-from-sqlite3-remote-databases – cory

+0

@cory好吧,非常有趣。感谢那。我仍然应该可以将文件下载到磁盘,然后通过命令行脚本将这些表读入内存中(这是我所需要的帮助)。我真的不在乎它是否被保存到内存本身(我想这是有道理的,它需要先保存到磁盘)。 –

+0

我猜想sqlite数据库的内存中存储是一种可能性,“当这样做完成后,不会打开任何磁盘文件,而是纯粹在内存中创建一个新的数据库。一旦数据库连接关闭,数据库就会停止存在。“https://www.sqlite.org/inmemorydb.html –

回答

5

您可以将原始sqlite的文件保存到临时文件:

library("RSQLite") 
temp <- tempfile() 
download.file("https://github.com/cmohamma/jeopardy/blob/master/database.sqlite?raw=true", temp) 
db <- dbConnect(SQLite(), dbname=temp) 
dbListTables(db) 
# [1] "Strike1Players"   "Strike2Players"   "Strike3Players"   
# [4] "ThreeStrikesClues"  "WrongAnswers"   "categories"    
# [7] "clue_wrong_answers"  "clues"     "final"     
# [10] "final_jeopardy_answers" "game_players"   "games"     
# [13] "players"    "sqlite_sequence"  "temp"