R中的函数readline
类似于python中的raw_input
,都允许传递交互式参数。
但是,当我在终端中运行R脚本时,它不起作用。
以下是txt.R
示例:
#!/usr/bin/env Rscript
x = readline('Hello?')
print(x)
在终端中运行./txt.R
,它只是打印出来:
Hello?
[1] ""
不等我的输入。那么如何解决呢?
答案 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")
}