2011-09-25 141 views
7

我有一些这样的查询:如何将R变量传递给sqldf?

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

但我在一个变量stateValue"AndhraPradesh"。如何在R中的select查询中使用此变量以获得与上面相同的结果。

请给我看句法。

回答

10

您可以使用sprintf

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

我不会推荐。请参阅sqldf github主页上的示例5,了解通常与sqldf一起使用的方法。 –

4

Example 5sqldf GitHub page


实施例5.将变量

下面是使用gsubfn准Perl样式串内插插入评价变量到一个查询的一个例子。 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 
1

您还可以使用fn$sqldf

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