首页 > 解决方案 > 创建使用环境变量作为默认值的 RStudio 连接

问题描述

我正在尝试根据此文档将连接片段添加到 bigrquery 包:

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

我想将项目名称默认为这样的环境变量:

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

不幸的是,这不起作用,因为Sys.getenv('BIGQUERY_PROJECT')没有评估。

更新 例如@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"), "}")
)

标签: rgoogle-bigqueryrstudiobigrquery

解决方案


不确定这是否正是您想要的,但r eval({ })如果我正确理解您的目的,您可以在反引号中使用。

带有“用户”环境变量的示例:

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

触发时将为我的用户(jozef)执行此操作:

在此处输入图像描述

另外,我写了一篇文章,其中包含更多高级片段使用的示例。


推荐阅读