-1

このサイトの他の場所で、単一の変数を sqldf に渡すことができることを見てきましたが、「myplace」のすべての値をループする方法を追跡できませんでした。

myplace <- ("place1", "place2", "place3", ...)

myquery <- sqldf(select things from mydata where place = myplace)

myplace.graph1 <- ggplot2(myquery)

私の目的は、「myplace」要素ごとに多数のテーブルとグラフの作成を自動化することです。データセットは毎月更新され、それについて報告する必要があるため、これを行いたいと考えています。(このため、このサイトの同様のクエリで示唆されているように、グループ化は正しい方法ではないと思いますが、修正する必要があります)。

混乱したスプレッドシートの束を置き換えるために、R ロープを学習中です。データは現在 sqlite にありますが、「dbgetQuery」をループする方法もわかりませんでした。

まったく異なるアプローチが必要になる可能性があります.グラフが見栄えがよく、手順を文書化でき、オープンソースであるため、Rを探索しています.アドバイスをいただければ幸いです.

どうもありがとう

4

1 に答える 1

2

1) クエリは単なるテキスト文字列です。に渡す前に、そのテキスト文字列を通常の方法で操作できますsqldf?paste?paste0?sprintfなどを参照してください。

qry <- paste("select things from mydata where place =", myplace[1])
myplace.graph1 <- plot(sqldf(qry))

myplace.graph <- list()
for(i in seq_along(myplace))
{
    qry <- paste("select things from mydata where place =", myplace[i])
    myplace.graph[[i]] <- plot(sqldf(qry))
}

2) または、ループなし:

myplace.graph <- lapply(myplace, function(x) {
    qry <- paste("select things from mydata where place =", x)
    plot(sqldf(qry))
}

3) または、sqldf ホームページの例 5$.fnのように、gsubfnパッケージ (sqldf によって自動的にロードされるので使用可能) から使用します。

sql <- "select things from mydata where place = '$p' "
lapply(myplace, function(p) plot(fn$sqldf(sql)))
于 2013-10-26T05:38:07.903 に答える