¿Prefieres usar R’s Shiny o Python Flask para crear aplicaciones web centradas en datos?

Estas son dos herramientas diferentes que tienen diferentes casos de uso .

R’s Shiny [1] brilla (juego de palabras) para construir paneles y visualizaciones interactivas. Es bastante fácil de usar y no necesita conocimientos de HTML, JavaScript o CSS.

En el otro extremo, Flask [2] es un marco de desarrollo de micro web que se utiliza en el backend. Los desarrolladores tienden a usarlo para crear tableros (ya que es liviano) pero está lejos de ser suficiente. También necesitaría combinarlo con JavaScript, HTML, CSS para crear el front-end.

Un gran ejemplo que utiliza Flask (y algunas de sus variantes y extensiones) es el superconjunto del proyecto [3] (anteriormente conocido como carabela). Es un panel de exploración de datos de código abierto de Airbnb.

Espero que esto aclare algo de la ambigüedad.

Estén atentos para las próximas respuestas: http://quora.com/profile/Yassine…

Notas al pie

[1] brillante

[2] Frasco (un microframe de Python)

[3] airbnb / superset

Actualización (30/12/2017) Contestaría esto considerando la licencia de software. Prefiero las soluciones de código abierto más que nada.

Mientras que R es de código abierto, el paquete Shiny the R ahora es propiedad de RStudio.

Para alojar el servidor Shiny (este enlace tiene una tabla de precios y características) para ver una aplicación R Shiny, existen varios planes de precios. Si desea utilizar la versión de código abierto de Shiny Pro de forma gratuita, necesitará saber cómo implementar la aplicación del servidor en un servidor para alojar su aplicación. No he usado esta versión gratuita de código abierto en particular, pero parece ser más difícil de configurar que la experiencia de alojamiento con un solo clic de R Studio a la que los usuarios de R están acostumbrados.

Por otro lado , las soluciones de Python, como Flask, son de código abierto. También puede considerar alojar la visualización de datos dentro de una notebook IPython con widgets interactivos Bokeh o IPython. Se pueden alojar en GitHub de forma gratuita.

Consideración secundaria: facilidad de uso

Tal vez la versión paga Shiny sea un poco más fácil de usar porque los autores del paquete y R Studio resolvieron todas las partes difíciles para configurar la aplicación web. Sin embargo, como espectador / entrevistador, a menos que pueda mostrarme información estadística extraordinaria con su aplicación Shiny, sus habilidades técnicas me impresionarán mucho menos.

Hacer que la aplicación web Python funcione no es tan difícil. Google y tutoriales en línea lo llevarán allí. Por ejemplo, alojar una aplicación web de Python en GitHub no es tan difícil.

Consideración final: cómo se procesaron sus datos

Si hiciste todos tus datos en R, tiene más sentido quedarte en ese ecosistema. Pero no es la única forma:

Solución 1: puede guardar los datos en el disco después de procesarlos con R si los datos procesados ​​son lo suficientemente pequeños y usar Python para leerlos en una aplicación web.

Solución 2: puede llamar a Python en forma de R a través de RPy2 para el procesamiento y visualizar los datos de procesos con Python.

Espero que proporcione algunas perspectivas.

A partir de julio de 2017, también puede usar Dash ( https://github.com/plotly/dash ). Está construido en Flask y proporciona una interfaz Python para componentes web y la actualización de esos componentes. Al igual que Shiny y Excel, es “reactivo”, lo que facilita razonar sobre el código de interfaz de usuario complejo e interdependiente.

Github: plotly / dash

Documentos: https://plot.ly/dash

Aplicaciones de ejemplo creadas con Dash:

Descargo de responsabilidad: escribí Dash.

Eso depende en gran medida de lo que va a hacer su aplicación web y a quién va a servir. El caso de uso define la tecnología y no es aconsejable generalizar los casos de uso.

Por ejemplo, tenemos un par de aplicaciones web que manejan miles de millones de filas de datos. Estas aplicaciones se realizan en Shiny. Son aplicaciones de datos de producción. Sin embargo, atienden a un número muy pequeño de usuarios. Si esas aplicaciones tuvieran que servir a muchos usuarios (por ejemplo, más de 100), Shiny no lo manejaría. La naturaleza de las aplicaciones más la cantidad de usuarios la haría muy pesada de usar.

Si lo que está tratando de lograr es una aplicación web que pueda usar los paquetes de R en tiempo real, dados algunos conjuntos de datos y entradas, entonces Shiny es la mejor opción si puede escalar o equilibrar la usabilidad y el poder. Para todo lo demás, necesitará otra solución.

Preferiría la combinación de matraz de pitón. Si bien R es una plataforma analítica sólida, carece de los matices de un lenguaje de propósito general. Aunque R shiny supera la falta de interactividad y permite la publicación de los análisis y modelos de R, Python lo hace realmente mejor. Un marco de aplicación web dedicado, la interacción con lenguajes web como Java Script, una pila de computación científica súper eficiente, pandas, numpy, scipy y scikit learn hacen de Python una muy buena opción para productos de datos. Además, todos los productos de datos líderes tienen extensiones para python, pySpark, pyLucene, seaborn, bokeh, etc. No es casualidad que Python se esté convirtiendo en el lenguaje de datos de facto.

Para una aplicación o prototipo personal, Shiny será una mejor solución, ya que es mucho más fácil hacer un trabajo, no necesita saber JS, HTML, CSS ni siquiera.

Si desea ofrecer su aplicación a otras personas, puede considerar la edición profesional de Shiny y será mejor que domine la tecnología frontend. Para Flask, considero que deberías encontrarte como un buen desarrollador frontend.

En general, si tiene un soporte de ingeniería limitado, puede elegir Shiny. De lo contrario, Flask podría ser más barato y más escalable.

Ninguno. Yo elegiría el OpenCPU de R.

La versión gratuita de Shiny es limitada en términos de entornos aislados, todos los usuarios comparten los mismos datos, no hay forma de aislarlos unos de otros. OpenCPU también es de nivel inferior y, por lo tanto, un marco un poco más flexible. También carece de todos estos sofisticados widgets conocidos de Shiny. Para aquellos que buscan una manera fácil de exponer sus análisis en la Web, puede ser un gran inconveniente. Para aquellos que crean sistemas avanzados desde cero, una ventaja significativa.

La versión de pago de Shiny elimina muchas limitaciones y puede considerarse un buen candidato para dicha tarea.

Pero lo usaría (y lo hago) solo para pequeñas aplicaciones. De lo contrario, preferiría ASP.NET MVC + R.NET para sistemas enfocados en análisis estadísticos y quizás Python de otra manera (si lo supiera).

Voy con el halcón o el frasco de Python. Cuando su backend está en Python y cada modelo / visualización se prepara usando el código Python, es un movimiento obvio.

Para las soluciones de producción, no creo que Shiny sea una buena opción: el ecosistema R es mucho mejor para el análisis exploratorio. El ecosistema de Python es más rico: no tendrá que rascarse la cabeza para averiguar dónde obtener funcionalidad adicional cuando llegue el momento.

Esto realmente depende.

Para mí, lo más importante que hacer en el trabajo es que se muestren las IDEA. Podría hacer eso con Shiny IN NO TIME de manera consistente, mientras que me llevó días hacer un trabajo muy simple en Python spyre o pyxley.

Estoy usando la versión gratuita de Shiny y tengo un servidor ubuntu que aloja muchas aplicaciones Shiny (con un número limitado de usuarios que visitan). Funciona perfecto Si tengo una aplicación Shiny que es tan buena que todos en la empresa quieren usarla, solo le pediré a TI que la reescriba en JAVA.

Rocas brillantes para prototipos de modelos y pruebas de concepto. Es un buen medio de comunicación entre los científicos de datos y otros.

Solo un desarrollador fullstack o un ingeniero de software podría proporcionar la respuesta correcta, no un científico de datos.

No puede usar R para crear una aplicación web basada en datos de grado de producción.

Use el matraz de Python para crear un prototipo de su MVP, pero luego pase a Django u otro marco con todas las funciones cuando quiera tomar en serio.


Soy asistente de enseñanza en K2 Data Science , un campamento de ciencia de datos en línea para profesionales que trabajan.

Solo utilicé el paquete Shiny de R. Shiny bastante potente – Galería. Pero tiene sus propias dificultades, especialmente dependiendo de su propósito al crear aplicaciones. No tengo dudas de que Python Flask al menos puede ofrecer posibilidades al mismo nivel que R’s Shiny.

Nunca usé esas herramientas, intento lo más posible en el back-end, así que no tengo experiencia en esto, lo siento 🙂