2016-04-14 19 views
0

ich eine data.frame in einer SQL Datenbank gespeichert sind, erstellt mit der dbWriteTable Funktion des Rsqldf Paket.aus einer SQL-Datenbank

Ich frage mich, ob es eine Möglichkeit gibt, spezifische Spalten mit ihren Namen aus dieser data.frame in dieser SQL-Datenbank zu holen.

Für Reihen durch ihre Namen zu holen, funktioniert dieser Code:

#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) 

Meine Frage ist, ob für Spalte mit ihrem Namen gleichwertig etwas da ist die Auswahl?

Wenn ich diesen Code versuchen, wo meine ausgewählten Spaltennamen sind: "col-1T-A_m1" und "col-1T-A_m2":

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

Ich bekomme diese Fehlermeldung:

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

Antwort

1

Angenommen, Sie führen Raw-SQL-Abfragen aus, dann sollten Sie in der Lage sein, die gewünschten Spaltennamen nach SELECT, z

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

Ich bekomme diese Fehlermeldung: Fehler in sqliteSendQuery (con, aussage, bind.data): Fehler in der Aussage: unerkannte Token: "1T". Meine Abfrage ist: "select col-1T-A_m1, col-1T-A_m2, von df" – user1701545

+0

Sie müssen die Spaltennamen entfliehen, da Leerzeichen vorhanden sind. Also versuchen Sie folgendes: 'Wählen Sie \' col-1T-A_m1 \ ', \ 'col-1T-A_m2 \', von df' aus –