R run不为源文件提供交互式输入

时间:2016-06-16 18:18:01

标签: r rstudio

R在运行和获取文件之间有一个细微的区别。 Source假定输入是有效的R代码。我有一个函数,要求通过readlines()进行交互式输入。我在文件中记录了所需的输入,但无法弄清楚如何从文件中运行。

这是一个例子,一个小型函数,它以交互方式请求文本并将其打印出来:

spacefun <- function() {
  text <- readline("Input text: ")
  print(text)
}

单独的文件test.R调用该函数并提供文本。

spacefun()
Test Line

source()parse()都会在空白处抛出错误:

Error in source("~test.R", echo = TRUE) : 
  ~test.R:2:6: unexpected symbol
1: spacefun()
2: Test Line

思想?

1 个答案:

答案 0 :(得分:0)

Make readline wait for input in R 回答

当你使用脚本模式时,你应该使用readLines()作为输入,使用cat()作为输出,这是一个奇怪的设计,我不知道为什么。

cat("a string please: ");
a <- readLines("stdin",n=1);
cat("You entered")
str(a);
cat( "\n" )