How to receive an input during an R function?

Asked

Viewed 501 times

2

It is possible to ask a question and receive an input while executing a function?
Example:

formateCdoispontos<-function(){
  print('Tem certeza que quer fazer isso? (S/N)')
  ...
  if(resposta=='N')break
  ...
  }

Or all information is restricted to function input?
Thus:

formateCdoispontos<-function(certeza = 'N'){
  if(resposta=='N')break
  ...
  }

2 answers

7


Yes, one way to do that is to apply the function readline() to acquire user terminal input.

formateCdoispontos <- function(){
  resposta <- readline(prompt = "Tem certeza que quer fazer isso? (S/N)")
  if(resposta=='N')break
  ...
print(paste("Sua resposta foi" resposta))
}

4

We can also use menu():

pergunta <- function(){

  sel <- c("Sim", "Não")

  ans <- menu(sel, title = "Tem certeza que quer fazer isso? (S/N)")

  return(paste0('Sua resposta foi ', tolower(sel[[ans]])))
}

On the console:

> pergunta()
Tem certeza que quer fazer isso? (S/N) 

1: Sim
2: Não

Selection: 1
[1] "Sua resposta foi sim"

Browser other questions tagged

You are not signed in. Login or sign up in order to post.