【问题标题】:Rscript and user promptsRscript 和用户提示
【发布时间】:2017-12-19 14:53:26
【问题描述】:

有一个完整的 R 脚本。但是,从 Rscript 执行它时,它不会停止接受用户输入。 用户输入是一些 readline 语句。提示输入的 cat 语句按预期工作。我错过了什么吗? 我在 macOS 上从终端执行“Rscript scriptfile.R”。

【问题讨论】:

标签: r rscript


【解决方案1】:

如 meenaparam 建议的帖子中所述,通过将 readline 更改为 readLines 设法使其工作。这种方法的缺点是脚本只能在批处理模式下工作,在 Rstudio 中运行它会使其挂起。很高兴知道捕获键盘输入的一般方法,即在交互式和批处理模式下都可以工作。

【讨论】:

    【解决方案2】:

    您可以创建一个函数 typeline() 来读取输入行,然后将结果用于下一个命令。它会等待您在 Rstudio 或终端中运行代码的输入文本:

    typeline <- function(msg="Enter text: ") {
      if (interactive() ) {
        txt <- readline(msg)
      } else {
        cat(msg);
        txt <- readLines("stdin",n=1);
      }
      return(txt)
    }
    
    txt=typeline("your message: ")
    print(txt)
    

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2011-03-13
      • 2018-12-25
      相关资源
      最近更新 更多