scstrein
2012-Jul-11 15:16 UTC
[R] Passing Multiple Variable Into SQLDF Statement as parameters of function
Hey guys, So I'm working with a project where I manage a database within R, and I'm developing a script/function that will automatically run my queries in R depending on the date parameters passed in. The problem is that when I create variables for the dates, and use those variables in my sqldf statements, R says that there is no such column in the dataframe (which is true!). My question is: how can I pass multiple date variables into my sqldf statements? In particular, the sqldf is supposed to read the date parameter as a character string (its the only way I could get it to work). This is my code so far:> StartDate='2010-06-15' > EndDate='2010-06-22'> Example=paste("select * from LibDB where Date_Entered > =",as.character(StartDate)) > sqldf(Example,verbose=TRUE)This passes the StartDate in correctly, but in a form where my particular query won't pick up the date in the database. In reality, I want it to act as the following:> Example=paste("select * from LibDB where Date_Entered ='2010-06-15'")Eventually, I need to have statements such as:> Example=paste("select * from LibDB where Date_Entered between > '2010-06-15' and '2010-06-22')Thanks in advance for any feedback! :) -- View this message in context: http://r.789695.n4.nabble.com/Passing-Multiple-Variable-Into-SQLDF-Statement-as-parameters-of-function-tp4636147.html Sent from the R help mailing list archive at Nabble.com.
Gabor Grothendieck
2012-Jul-11 21:59 UTC
[R] Passing Multiple Variable Into SQLDF Statement as parameters of function
On Wed, Jul 11, 2012 at 11:16 AM, scstrein <scstrein at ncsu.edu> wrote:> Hey guys, > > So I'm working with a project where I manage a database within R, and I'm > developing a script/function that will automatically run my queries in R > depending on the date parameters passed in. > > The problem is that when I create variables for the dates, and use those > variables in my sqldf statements, R says that there is no such column in the > dataframe (which is true!). My question is: how can I pass multiple date > variables into my sqldf statements? In particular, the sqldf is supposed to > read the date parameter as a character string (its the only way I could get > it to work). > > This is my code so far: > >> StartDate='2010-06-15' >> EndDate='2010-06-22' > >> Example=paste("select * from LibDB where Date_Entered >> =",as.character(StartDate)) >> sqldf(Example,verbose=TRUE) > > This passes the StartDate in correctly, but in a form where my particular > query won't pick up the date in the database. In reality, I want it to act > as the following: > >> Example=paste("select * from LibDB where Date_Entered ='2010-06-15'") > > Eventually, I need to have statements such as: > >> Example=paste("select * from LibDB where Date_Entered between >> '2010-06-15' and '2010-06-22') >See example 5 on the sqldf home page; http://code.google.com/p/sqldf/#Example_5._Insert_Variables -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
jim holtman
2012-Jul-12 02:10 UTC
[R] Passing Multiple Variable Into SQLDF Statement as parameters of function
You have to explicitly add the quotes: Example=paste0("select * from LibDB where Date_Entered ='",as.character(StartDate), "'") # notice the single quotes within the double quotes> sqldf(Example,verbose=TRUE)On Wed, Jul 11, 2012 at 11:16 AM, scstrein <scstrein at ncsu.edu> wrote:> Hey guys, > > So I'm working with a project where I manage a database within R, and I'm > developing a script/function that will automatically run my queries in R > depending on the date parameters passed in. > > The problem is that when I create variables for the dates, and use those > variables in my sqldf statements, R says that there is no such column in the > dataframe (which is true!). My question is: how can I pass multiple date > variables into my sqldf statements? In particular, the sqldf is supposed to > read the date parameter as a character string (its the only way I could get > it to work). > > This is my code so far: > >> StartDate='2010-06-15' >> EndDate='2010-06-22' > >> Example=paste("select * from LibDB where Date_Entered >> =",as.character(StartDate)) >> sqldf(Example,verbose=TRUE) > > This passes the StartDate in correctly, but in a form where my particular > query won't pick up the date in the database. In reality, I want it to act > as the following: > >> Example=paste("select * from LibDB where Date_Entered ='2010-06-15'") > > Eventually, I need to have statements such as: > >> Example=paste("select * from LibDB where Date_Entered between >> '2010-06-15' and '2010-06-22') > > Thanks in advance for any feedback! :) > > > -- > View this message in context: http://r.789695.n4.nabble.com/Passing-Multiple-Variable-Into-SQLDF-Statement-as-parameters-of-function-tp4636147.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it.