如何将 R 变量传递给 sqldf?

Posted

技术标签:

【中文标题】如何将 R 变量传递给 sqldf?【英文标题】:How can I pass R variable into sqldf? 【发布时间】:2011-11-24 18:22:33 【问题描述】:

我有一些这样的查询:

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

但我在变量stateValue 中有"AndhraPradesh"。如何在 R 的选择查询中使用此变量以获得与上述相同的结果。

请告诉我语法。

【问题讨论】:

【参考方案1】:

你可以使用sprintf:

sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue))

【讨论】:

我不会推荐这个。 sqldf常用的方法见sqldf github主页的示例5。【参考方案2】:

在sqldf GitHub page 上查看Example 5。


示例 5. 插入变量

这是一个使用 gsubfn quasi-perl-style 字符串插值将评估变量插入查询的示例。 gsubfn 由 sqldf 使用,因此它已经加载。请注意,我们必须使用 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

【讨论】:

【参考方案3】:

你也可以使用fn$sqldf

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

【讨论】:

以上是关于如何将 R 变量传递给 sqldf?的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量传递给已经在 R 的参数中实现非标准评估的函数?

R,将变量传递给系统命令

如何将实例变量传递给打字稿装饰器参数?

如何将变量传递给jquery验证器

姜戈。如何将下一个变量传递给 auth_views.login

如何将 $_SESSION 变量传递给 websocket 服务器?