5

我正在 RMarkdown 中构建一个依赖于用户生成密码的应用程序:

library(getPass)

pw <- getPass(msg = "Enter the Password, please!")

当我在 R 控制台中以交互方式运行所有代码时,getPass 函数会暂停代码并提供一个弹出窗口,用户可以在其中输入密码。

但是,当在 RMarkdown 中包含此代码时,编织过程不会停止 getPass 的工作。结果,代码在没有密码的情况下运行。在这种情况下,它会阻止应用程序连接到受密码保护的数据库。

你们中有人对如何解决此问题有建议吗?我已经搜索过类似的问题,但如果这是重复的,那么我很抱歉。谢谢!

4

1 回答 1

5

评论中所述,使用参数化报告

您的 rmarkdown 应如下所示:

---
output: html_document
params:
  pwd:
    label: "Enter the Password, please!"
    value: ""
    input: password
---

Your password is `r params$pwd`

现在要么运行

rmarkdown::render("test.Rmd", params="ask")

或使用 RStudio 按钮“Knitr with parameters”:

在哪里点击

于 2019-03-21T11:52:23.480 回答