R readline在脚本中不起作用

时间:2015-03-09 05:14:49

标签: python r readline raw-input

R中的函数readline类似于python中的raw_input,都允许传递交互式参数。

但是,当我在终端中运行R脚本时,它不起作用。

以下是txt.R示例:

#!/usr/bin/env Rscript
x = readline('Hello?')
print(x)

在终端中运行./txt.R,它只是打印出来:

Hello? [1] "" 不等我的输入。那么如何解决呢?

2 个答案:

答案 0 :(得分:2)

我们可以在终端运行的脚本中使用readLines。例如:

#!/usr/bin/env Rscript
cat("What is your name? ")
x <- readLines("stdin", 1)
cat(sprintf("Hello, %s!\n", x))

答案 1 :(得分:1)

不幸的是,readline()将以您期望的方式仅在交互模式下工作。

以下是文档中的注释?值部分中的readline

  

在非交互式使用中,结果就像响应是RETURN并且值是“”。

您可以测试以查看运行此代码的模式是否是交互式的。

if(interactive()) {
    print("In interactive mode")
} else {
    print("Not in interactive mode")
}