如何将R变量传递到sqldf中?

11

我有一个查询像这样:

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

但是我有一个变量stateValue,其中包含 "AndhraPradesh"。我该如何在R中使用这个变量来执行选择查询,以获得与上述相同的结果。

请展示语法。

3个回答

13
你可以使用 sprintf
sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue))

我不建议这样做。请参考sqldf github首页上的示例5,了解通常与sqldf一起使用的方法。 - G. Grothendieck

7

请查看示例5,位于sqldf GitHub页面上。


示例5. 插入变量

以下是使用 gsubfn 准 Perl 风格字符串内插将已评估的变量插入查询语句的示例。sqldf 已经加载了 gsubfn。请注意,我们必须使用 fn$ 前缀来调用内插功能:

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

4
您还可以使用fn$sqldffn$sqldf("select TenScore from data where State_P = '$stateValue'")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接