-1

我想在 R 中访问和操作一个大型数据集。由于它是一个大型 CSV 文件(~0.5 GB),我计划将它导入
SQLite,然后从 R 中访问它。我知道sqldfRSQLite包可以做到这一点,但我去了他们的手册,他们没有帮助。成为 SQL 的新手也无济于事。

我想知道我是否必须将 R 目录设置为 SQLite,然后从那里开始?那么我如何在 R 中读取数据库?哎呀,如果您知道如何在不使用 SQL 的情况下从 R 访问数据库,请告诉我。

谢谢!

4

1 回答 1

8

这真的很简单——sqlite db 文件的路径和文件名作为“数据库”参数传递。这是蔓越莓所做的:

databasefile <- "/home/edd/cranberries/cranberries.sqlite"

## ...

## main worker function
dailyUpdate <- function() {
    stopifnot(all.equal(system("fping cran.r-project.org", intern=TRUE), 
                        "cran.r-project.org is alive"))
    setwd("/home/edd/cranberries")
    dbcon <- dbConnect(dbDriver("SQLite"), dbname = databasefile)
    repos <- dbGetQuery(dbcon, 
                        paste("select max(id) as id, desc, url ",
                              "from repos where desc!='omegahat' group by desc")
    # ...

这就是全部。当然,后面还有其他疑问……

在从 R 尝试或直接从 R 尝试之前,您可以轻松地在 sqlite 客户端中测试所有 SQL 查询。

编辑:由于上面显然太简洁了,这里是一个直接来自文档的例子:

con <- dbConnect(SQLite(), ":memory:")         ## in-memory, replace with file
data(USArrests)
dbWriteTable(con, "arrests", USArrests)

res <- dbSendQuery(con, "SELECT * from arrests")
data <- fetch(res, n = 2)
data

dbClearResult(res)
dbGetQuery(con, "SELECT * from arrests limit 3")
于 2012-10-11T18:03:30.567 回答