创建使用环境变量作为默认值的 RStudio 连接
Posted
技术标签:
【中文标题】创建使用环境变量作为默认值的 RStudio 连接【英文标题】:Create RStudio connection that uses environment variables as defaults 【发布时间】:2019-06-22 11:42:39 【问题描述】:我正在尝试根据此文档将连接 sn-p 添加到 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"), "")
)
【问题讨论】:
你能用 debug() 分析你的问题吗? sn-ps 的链接是什么? 我该如何使用debug
?
调试(bigrquery::dbConnect)。请参阅 ??Debug。
bigrquery::dbConnect
按预期工作,我找不到将环境变量注入连接 sn-p 的方法
【参考方案1】:
不确定这是否正是您想要的,但如果我正确理解您的目的,您可以在反引号中使用 r eval( )
。
“USER”环境变量示例:
snippet envvar
library(bigrquery)
con <- dbConnect(
bigquery(),
project = "$1:Project=`r eval(Sys.getenv('USER'))`"
)
触发时将为我的用户 (jozef) 执行此操作:
另外,我 wrote a post with more examples 使用高级 sn-p。
【讨论】:
以上是关于创建使用环境变量作为默认值的 RStudio 连接的主要内容,如果未能解决你的问题,请参考以下文章