如何将 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?的主要内容,如果未能解决你的问题,请参考以下文章