-1

Rの大きなデータセットにアクセスして操作したい。これは大きなCSVファイル(〜0.5 GB)
なので、SQLiteにインポートしてから、Rからアクセスする予定です。パッケージでこれを実行できることはsqldfわかっていますが、RSQLite彼らのマニュアルを超えて、彼らは役に立ちません。SQLの初心者であることも役に立ちません。

RディレクトリをSQLiteに設定して、そこから移動する必要があるのか​​知りたいのですが。では、Rでデータベースを読み取るにはどうすればよいですか?SQLを使用せずにRからDBにアクセスする方法を知っている場合は、教えてください。

ありがとう!

4

1 に答える 1

8

それは本当に簡単です。sqlite db ファイルへのパスとファイル名は、'database' パラメータとして渡されます。これがCRANberryの機能です:

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 に答える