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
思想?
答案 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" )