0

データベース名とテーブルの 2 つのパラメータを渡して、SQLite データベースに接続する関数を作成したいと思います。

私はこれを試しました:

sqLiteConnect <- function(database, table) {
  con <- dbConnect("SQLite", dbname = database)
  query <- dbSendQuery(con, "SELECT * FROM  ", table)
  fetch(query, n = -1)
  }

しかし、私は合格しresult <- sqLiteConnect(primary_database, "table_name")ますError in sqliteExecStatement(conn, statement, ...) : RS-DBI driver: (error in statement: near " ": syntax error)

関数を次のように変更すると

sqLiteConnect <- function(database, table) {
  con <- dbConnect("SQLite", dbname = database)
  query <- dbSendQuery(con, "SELECT * FROM  ", table, "")
  fetch(query, n = -1)
  }

私は得るError in sqliteExecStatement(conn, statement, ...) : unused argument ("")

問題は、変数を文字列に連結することにあると思います。

4

1 に答える 1

1

dbSendQuery は、SQL ステートメントを単一の文字列として必要とするため (テーブルを引数として取りません)、paste() または sprintf() を使用して作成する必要があります。次に例を示します。

sqLiteConnect <- function(database, table) {
 con <- dbConnect("SQLite", dbname = database)
 query <- dbSendQuery(con, paste("SELECT * FROM ", table, ";", sep="")) 
 fetch(query, n = -1)
 }
于 2013-08-28T04:37:57.237 に答える