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.