Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I pass R variable into sqldf?

Tags:

r

sqldf

I have some query like this:

sqldf("select TenScore from data where State_P = 'AndhraPradesh'")

But I have "AndhraPradesh" in a variable stateValue. How can I use this variable in a select query in R to get the same result as above.

Please show me the syntax.

like image 670
Sandeep Avatar asked Sep 25 '11 19:09

Sandeep


3 Answers

You can use sprintf:

sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue))
like image 143
rcs Avatar answered Nov 02 '22 03:11

rcs


See Example 5 on the sqldf GitHub page.


Example 5. Insert Variables

Here is an example of inserting evaluated variables into a query using gsubfn quasi-perl-style string interpolation. gsubfn is used by sqldf so it is already loaded. Note that we must use the fn$ prefix to invoke the interpolation functionality:

minSL <- 7
limit <- 3
species <- "virginica"
fn$sqldf("select * from iris where \"Sepal.Length\" > $minSL and species = '$species' 
  limit $limit")

##   Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 1          7.1         3.0          5.9         2.1 virginica
## 2          7.6         3.0          6.6         2.1 virginica
## 3          7.3         2.9          6.3         1.8 virginica
like image 26
G. Grothendieck Avatar answered Nov 02 '22 03:11

G. Grothendieck


You can also use fn$sqldf :

fn$sqldf("select TenScore from data where State_P = '$stateValue'")

like image 39
Mikah Avatar answered Nov 02 '22 03:11

Mikah