2011-09-25 145 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'")