Rscript和用户提示

时间:2017-07-14 13:20:06

标签: r rscript

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以创建函数类型行()来读取输入行,然后将结果用于下一个命令。它将等待您在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)