Как я могу передать переменную R в sqldf?

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

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

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

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


person Sandeep    schedule 25.09.2011    source источник


Ответы (3)


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

sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue))
person rcs    schedule 25.09.2011
comment
Я бы не рекомендовал это. См. Пример 5 на домашней странице sqldf github для метода, обычно используемого с sqldf. - person G. Grothendieck; 15.09.2017

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


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

Вот пример вставки оцененных переменных в запрос с использованием квази-perl-интерполяции строк 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
person G. Grothendieck    schedule 25.09.2011

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

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

person Mikah    schedule 16.11.2013