R中的Readline()读取下一行

时间:2015-05-12 18:01:58

标签: r

我想要一些用户输入,我想使用readline。但是,当我执行下面的代码时,它使用“test< - ”sometext“直接作为输入,而不是等待用户响应。

每当我调用readline时,如何让代码停止运行,以便R等待用户响应?

fun <- function() {
   ANSWER <- readline("Are you a satisfied R user? ")
   if (substr(ANSWER, 1, 1) == "n")
     cat("This is impossible.  YOU LIED!\n")
   else
     cat("I knew it.\n")
}
fun()
test <- "sometext"
someCode <- "someCode"

这给出了以下输出:

> fun <- function() {
+   ANSWER <- readline("Are you a satisfied R user? ")
+   if (substr(ANSWER, 1, 1) == "n")
+     cat("This is impossible.  YOU LIED!\n")
+   else
+     cat("I knew it.\n")
+ }
> fun()
Are you a satisfied R user? test <- "sometext"
I knew it.
> someCode <- "someCode"

1 个答案:

答案 0 :(得分:0)

R正在等待输入并在fun()调用(复制粘贴,例如test <- "sometext")之后感知代码。如果您不希望发生这种情况,可以将调用包装到自己的函数中并调用该函数:

foo = function(){
    fun()
    test <- "sometext"
    someCode <- "someCode"
}
foo()