Crear un sistema de petición / respuesta para ingresar datos en R

Creé un código R para que lo usen personas que no saben nada de R (aunque yo también soy bastante verde). He estado haciendo que la gente pegue los datos iniciales en la consola R (con resultados mixtos) y esperaba configurar una forma más amigable para las personas de ingresar datos.

Idealmente, alguien podría sentarse en la consola, escribir un comando y recibir preguntas específicas sobre cómo ingresar los datos.

Por ejemplo, una persona carga r y ve un aviso:

What is x value? 

La persona escribe:

 2 

Siguiente mensaje:

 What is y value? 

La persona escribe en:

 3 

Siguiente mensaje:

  What are T values? 

La persona escribe en:

  4,3,2,1 

Siguiente mensaje:

¿Qué son los valores V?

La persona escribe en:

 4,5,6,9 

Y con estas 4 variables recientemente definidas (X, Y, T, V) el siguiente paso de R es ejecutar el código preescrito

 X+Y V+T 

Y en la consola aparecen las respuestas

 5 8 8 8 10 

Y todos están felices

Mis disculpas ya que esta no es una pregunta de código reproducible, pero no estoy seguro de cómo hacer que R haga preguntas en lugar de hacer preguntas sobre ¡R!

Como esto se supone que se usa solo como código interactivo, readline() puede funcionar para usted. No agregué ninguna comprobación de errores, pero probablemente desee hacer una buena cantidad de eso para garantizar la entrada adecuada. Aquí está el concepto central sin embargo:

 fun <- function(){ x <- readline("What is the value of x?") y <- readline("What is the value of y?") t <- readline("What are the T values?") v <- readline("What are the V values?") x <- as.numeric(unlist(strsplit(x, ","))) y <- as.numeric(unlist(strsplit(y, ","))) t <- as.numeric(unlist(strsplit(t, ","))) v <- as.numeric(unlist(strsplit(v, ","))) out1 <- x + y out2 <- t + v return(list(out1, out2)) } 

Véase también ?menu from utils para una interfaz de menú de base de texto simple y aviso, que también se usa en devtools .

Aquí hay un ejemplo:

 > menu(c("Yes", "No"), title="Do you want this?") Do you want this? 1: Yes 2: No Selection: 

Ya que esta pregunta fue traída de la muerte, probablemente esté escribiendo una respuesta actualizada.

Si una GUI es útil en este caso, el paquete Shiny ahora está bien integrado con RStudio, y sería muy fácil implementarlo como una aplicación Shiny. El sitio web http://shiny.rstudio.com tiene más información, incluidos ejemplos y documentación.

Puede ser exagerado para este caso particular, pero el paquete de swirl es bueno para presentar R de manera interactiva a los principiantes.

swirl es un paquete de software para el lenguaje de progtwigción R que convierte la consola R en un entorno de aprendizaje interactivo. Los usuarios reciben comentarios inmediatos a medida que son guiados a través de lecciones a su propio ritmo en ciencia de datos y progtwigción R.

Las instrucciones para generar contenido se pueden encontrar aquí: http://swirlstats.com/instructors.html .