Как я могу передать переменную R в sqldf? - PullRequest
10 голосов
/ 25 сентября 2011

У меня есть такой запрос:

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

Но у меня есть "AndhraPradesh" в переменной stateValue. Как я могу использовать эту переменную в запросе выбора в R, чтобы получить тот же результат, что и выше.

Пожалуйста, покажите мне синтаксис.

Ответы [ 3 ]

12 голосов
/ 26 сентября 2011

Вы можете использовать sprintf:

sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue))
6 голосов
/ 26 сентября 2011

См. Пример 5 на странице sqldf GitHub .


Пример 5. Вставка переменных

Вот пример вставки вычисленных переменных в запрос с использованием строковой интерполяции в стиле квазиперла в gsubfn.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
2 голосов
/ 17 ноября 2013

Вы также можете использовать fn$sqldf:

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

...