11

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.

zx8754
  • 52,746
  • 12
  • 114
  • 209
Sandeep
  • 663
  • 2
  • 8
  • 18

3 Answers3

13

You can use sprintf:

sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue))
rcs
  • 67,191
  • 22
  • 172
  • 153
7

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
G. Grothendieck
  • 254,981
  • 17
  • 203
  • 341
4

You can also use fn$sqldf :

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

CDub
  • 13,146
  • 4
  • 51
  • 68
Mikah
  • 41
  • 2