2016-04-14 17 views
0

からその名前で列を取得します。私は<code>R</code><code>sqldf</code>パッケージの<code>dbWriteTable</code>機能を使用して作成<code>SQL</code>データベースに保存された<code>data.frame</code>を持つSQLデータベース

このSQLデータベースのdata.frameの名前から特定の列を取得する方法があるかどうかは疑問でした。

その名前で行をフェッチするために、このコードは動作します:

#let's say the row names I want to select from the data.frame are in a vector called selected_row_names, where the data.frame is called df and the SQL database is called db 
query_text <- paste("('",paste(selected_row_names,collapse="', '"),"')",sep="") 
query_expression_text <- paste("select * from ",df," where row_names in ",query_text," order by row_names",sep="") 
selected_df = dbGetQuery(db, query_expression_text) 

私の質問は、その名前で列を選択するための同等のものがありますかどうか?

私は私の選択した列名があり、このコードは、しようとした場合: "COL-1T-A_m1" と "COL-1T-A_m2":

Error in sqliteSendQuery(con, statement, bind.data) : error in statement: unrecognized token: "1T". 

query_string <- paste("select col-1T-A_m1, col-1T-A_m1 from ", df, sep="") 
selected_df <- dbGetQuery(db, query_string) 

を私は、このエラーメッセージが表示されます

答えて

1

生のSQLクエリを実行していると仮定すると、SELECTの後に必要な列名を単純に指定できるはずです。

query_string <- paste("select col1, col2, col3 from ", df) 
selected_df <- dbGetQuery(db, query_string) 
+0

私は、このエラーメッセージが出ています。エラーをsqliteSendQuery(CON、声明、bind.data)に:文のエラー:認識できないトークン: "1Tを"。私の質問は: "select col-1T-A_m1、col-1T-A_m2、from df" – user1701545

+0

スペースがあるので、列名からエスケープする必要があります。だからこれを試してください: 'select \' col-1T-A_m1 \ '、\' col-1T-A_m2 \ '、from df' –

関連する問題

 関連する問題