tutorialspoint - shiny r examples
Una interfaz web para un programa R (7)
Tengo que desarrollar una interfaz web que le permita al usuario ingresar algunas entradas que se pasarán a un Rscript como parámetros y devolver el resultado al usuario.
Tengo algunas preguntas para alguien que ha hecho una interfaz web similar:
- ¿Qué marco web utilizar?
- ¿Cuál es la forma más fácil de comunicar la interfaz web y los Rscripts (dentro de la arquitectura de la aplicación web)?
- ¿Debo instalar R en el servidor (si es así, cómo ejecutar los Rscripts desde la interfaz web)?
Hay una buena lista en el sitio web de R: http://cran.r-project.org/doc/FAQ/R-FAQ.html#R-Web-Interfaces
OpenCPU es actualmente, en mi opinión, el paquete gratuito más avanzado para crear servicios web sin estado (REST) en R. Shiny es un gran marco, pero si planea usar la versión de comunidad gratuita, tenga en cuenta que no maneja llamadas concurrentes .
Puede ejecutar R dentro del servidor web apache: http://rapache.net/
R tiene su propio servidor web, por lo que podría hacer todo dentro de R. Entonces, no hay necesidad de preocuparse por elegir un marco, o hacer que se hablen entre sí, solo use un marco R:
http://cran.r-project.org/web/packages/Rook/index.html
Si no te gusta eso por rendimiento u otras razones, casi cualquier marco hablará con R de una forma u otra, así que usa aquello con lo que estés familiarizado. Usaría Django y llamaría R a través de Rpy2 o ejecutaría un proceso Rserve, pero si puede programar en PHP o Java, use un marco basado en esos idiomas. Si no puedes programar en nada que no sea R, entonces aprende Python o usa Rook.
Rstudio proporciona una interfaz web para R: http://rstudio.org/docs/server/getting_started
Rstudio tiene un nuevo servidor llamado Shiny que usa node.js para la interfaz de usuario:
Una forma muy conveniente es combinar Rstudio Server y Rook (consulte las otras respuestas de los enlaces).
Rstudio Server proporciona una manera muy fácil de configurar un servidor R al que puede acceder cualquier persona dentro de la red. Normalmente lo usarás para editar y ejecutar tu script en ese servidor.
Rook le permite crear fácilmente una interfaz web mediante la mezcla de código html para texto e interacción (como campos de entrada, etc.) y código R. Una vez que su script funcione, simplemente ejecútelo desde Rstudio Server, y cualquier usuario (con acceso) podrá conectarse a él, en la misma IP que Rstudio Server.
Estoy usando esta configuración junto con googleVis y estoy muy satisfecho.