(консоль) взаимодействие с пользователем в R? - PullRequest
4 голосов
/ 13 апреля 2011

Я уверен, что вы все знакомы с оператором hit return, чтобы показать следующий график при выполнении команды plot на объекте регрессии.Интересно, как я могу самостоятельно осуществлять такого рода взаимодействие в R. Я нашел пару постов в списке рассылки, но ничего по-настоящему всеобъемлющего.Большинство из них касалось menu () и различных графических интерфейсов ОС.Я просто хочу создать что-то вроде:

 Please enter sample size n: 
 > 1000

 #execution of
 rnorm(1000)

Возможно, я только что пропустил некоторую часть документации и просто не могу найти нужные слова для Google ...

Ответы [ 2 ]

5 голосов
/ 13 апреля 2011

Не readLines, а readline.

n <- as.integer(readline(prompt = "Please enter sample size > "))

Несколько более изящная реализация:

read_value <- function(prompt_text = "", prompt_suffix = getOption("prompt"), coerce_to = "character")
{
  prompt <- paste(prompt_text, prompt_suffix)
  as(readline(prompt), coerce_to)
} 

read_value("Please enter sample size", coerce_to = "integer")
1 голос
/ 13 апреля 2011

Вы можете использовать readLines, но я уверен, что есть и другие способы ...

ask = function( prompt ) {
    cat( paste( prompt, ':' ) )
    readLines( n=1 )
}

n = as.integer( ask( 'Please enter sample size n' ) )
...