Как я могу добавить переменную в символьную строку в R? Я в основном пытаюсь параметризовать строку символов, как я бы в SQL - PullRequest
1 голос
/ 27 марта 2020

Мой код R ниже. Обратите внимание, ниже две строки символов; Я пытаюсь параметризовать строку «запрос» # путем добавления в переменную перспективы, чтобы, если я хочу изменить перспективу строки запроса, мне нужно только #nene для обновления переменной перспективы.

perspective <- 'GR'

query <- "select portname, description, sum(loss) as 'perspective'_loss
          from table1
          where perspcode = 'perspective'"

1 Ответ

1 голос
/ 27 марта 2020

1) fn $ Предисловие к команде, имеющей оператор SQL, с помощью fn $, а затем вы можете сделать это, как показано. Обратите внимание, что переменная, интерполированная в строку, должна содержать в своем имени только буквы и цифры, поскольку она принимает первый символ, который не является одним из тех, которые заканчивают имя. fn $ исходит от gsubfn. На самом деле sqldf уже загружает gsubfn, но если вы не используете sqldf, например, возможно, вы используете RSQLite, то вам понадобится этот библиотечный вызов.

library(sqldf)
library(gsubfn) 

Species <- "setosa"
fn$sqldf("select count(*) as count from iris where Species = '$Species'")
##   count
## 1    50

Для получения дополнительной информации см.? Fn, а также посмотрите примеры на Домашняя страница sqldf github. https://github.com/ggrothendieck/sqldf

2) sprintf Мы можем поочередно использовать sprintf:

sql <- sprintf("select count(*) as count from iris where Species = '%s'", Species)
sqldf(sql)

3) паста Использование paste или paste0 - еще одна альтернатива, но вышеприведенное выглядит проще.

...