R语言 - 使用扫描或readline等待用户输入

时间:2014-03-07 15:17:43

标签: r input readline

我正在尝试让用户为查询输入一些关键字,在我的脚本中我使用了扫描或readline。我使用R-embeeded脚本编辑器(Windows)尝试了它,但是当我执行代码时,它使用我的下一行脚本作为标准输入。 这是我的(部分)脚本

keywords <- scan(what=character(), nlines=1)
keywords <- paste(keywords, collapse=",")
keywords

这是从编辑器执行时的输出

> keywords <- scan(what=character(), nlines=1)
1: keywords <- paste(keywords, collapse=",")
Read 4 items
> keywords
[1] "keywords"        "<-"              "paste(keywords," "collapse=\",\")"

同时当我使用source()命令时,我的用户输入受到尊重。

那么有什么方法可以在从R软件执行代码时输入一些东西吗?

1 个答案:

答案 0 :(得分:2)

这就是我使用readLInes的方式:

FUN <- function(x) {

    if (missing(x)) {
        message("Uhh you forgot to eneter x...\nPlease enter it now.")
        x <- readLines(n = 1)
    }
    x
}

FUN()

或者也许是这些方面的东西:

FUN2 <- function() {

    message("How many fruits will you buy")
    x <- readLines(n = 1)

    message("Good you want to buy %s fruits.\n Enter them now.")
    y <- readLines(n = x)
    paste(y, collapse = ", ")
}

FUN2()

编辑:您在Rgui的方法......

FUN3 <- function(n=2) {
    keywords <- scan(what=character(), nlines=n)
    paste(keywords, collapse=",")
}

## > FUN3 <- function(n=2) {
## +     keywords <- scan(what=character(), nlines=n)
## +     paste(keywords, collapse=",")
## + }
## > FUN3()
## 1: apple
## 2: chicken
## Read 2 items
## [1] "apple,chicken"