Создать соединение RStudio, которое использует переменные окружения в качестве значений по умолчанию - PullRequest
2 голосов
/ 22 июня 2019

Я пытаюсь добавить фрагмент соединения в пакет bigrquery на основе этой документации:

https://db.rstudio.com/advanced/snippets/

Я бы хотел использовать имя проекта по умолчанию в env var, например:

library(bigrquery)
con <-  dbConnect(
  bigquery(),
  project = "${1:Project=Sys.getenv('BIGQUERY_PROJECT')}"
)

К сожалению, это не работает, так как Sys.getenv('BIGQUERY_PROJECT') не оценивается.

UPDATE например для примера @ Jozef я получаю следующий код:

library(bigrquery)
con <-  dbConnect(
  bigquery(),
  project = "`r eval({Sys.getenv('BIGQUERY_PROJECT'))`"
)

ОБНОВЛЕНИЕ 2

Это работает, но выглядит не очень хорошо:

library(bigrquery)
con <-  dbConnect(
  bigquery(),
  project = paste0("${1:Project=", Sys.getenv("BIGQUERY_PROJECT"), "}")
)

1 Ответ

0 голосов
/ 22 июня 2019

Не уверен, что это именно то, что вам нужно, но вы можете использовать r eval({ }) в ответах, если я правильно понимаю вашу цель.

Пример с переменной окружения 'USER':

snippet envvar
    library(bigrquery)
    con <-  dbConnect(
        bigquery(),
        project = "${1:Project=`r eval({Sys.getenv('USER')})`}"
    )

Сделает это для моего пользователя (jozef) при запуске:

enter image description here

Кроме того, я написал сообщение с большим количеством примеров расширенного использования фрагмента.

...