文字ベクトルを使用してデータベースの一部を抽出しようとしています。私は私が使用することに興味を持ってデータフレームのセクション見つけることができるR:文字ベクトルに基づいてsqliteデータベースのサブセットを選択する
library(dplyr)
library(sqldf)
library(RSQLite)
df <- cbind(rownames(mtcars),mtcars)
colnames(df)[1] <- "CarName"
CarsToFind <- c("Valiant", "Merc 280", "Lotus Europa", "Volvo 142E")
db <- dbConnect(SQLite(), dbname = 'mtcars_db.sqlite3')
dbWriteTable(conn = db, name = 'mtcars_table', value = df, row.names = TRUE, header = TRUE)
:説明するために、以下のように私はmtcarsデータを使用している
mini_df <- df[df$CarName %in% CarsToFind,]
を私の実際のデータは非常に大きく、私はむしろ全部をデータフレームに抽出しません。私は次のようなものを探しています:
sqldf("SELECT * FROM mtcars_table WHERE CarName IN CarsToFind")
しかし、これは私に「no such table:CarsToFind」というエラーを与えます。私は一度オフに実行したい多くの異なるクエリがあるので、SQLデータバンクにテーブル 'CarsToFind'を作成したくありません。そのような文字ベクトルを使用してSQLを照会することは可能ですか?
私はこのエラーメッセージを受け取ります。 rsqlite_send_query(conn @ ptr、statement)のエラー:認識できないトークン:「280」「 私が間違っていることは何ですか? – nm200
'query'が実際に正しいクエリを持っていることを確認できますか? –
うん、ありがとう、それは問題だった。 sQuoteは '(中括弧記号)を挿入しますが、'(直筆記号)は必要です。私はちょうどgsubとまっすぐ引用符のためのすべての中かっこの引用を交換し、今それは完全に動作します。ありがとうございました! – nm200