studio sheet rmd reports hacer como cheat r shiny shinydashboard flexdashboard

sheet - R+brillante que martillo? ¿Brillante, tablero flexible o tablero brillante?



shiny flexdashboard (4)

A riesgo de ser golpeado con un martillo de mods "una pregunta demasiado amplia" , quiero preguntar dada la gran cantidad de herramientas y paquetes interactivos de R Shiny emergentes, ¿cuándo usas cuál?

  1. Brillante : para mí, solo una desventaja es que su proyecto debe ejecutarse desde un servidor brillante, pero parece la mejor opción.

  2. shinydashboard : brillante pero tiene bonitos cuadros de valor para llamadas.

  3. flexdashboard : escríbelo en Rmd. ¿Qué te aporta eso que Shiny no lo hace? Tal vez, ¿útil enviarlo por correo electrónico a un cliente siempre que esté contento de pasar datos? He estado jugando con flexdashboard pero su incapacidad para trabajar con datatable (biblioteca (DT)) me hace sentir que necesita algunas iteraciones más.

Mirando otras respuestas, no estoy solo al hacer esta pregunta .

Los creadores están proporcionando muchas galerías para mostrar sus paquetes / enfoques, pero ¿cómo saber qué camino seguir?

¿Cuáles son las claras ventajas de usar uno sobre el otro?


  1. shinydashboard tiene mejores elementos de interfaz de usuario que el brillo predeterminado, pero es como un tema moderno. No creo que deba figurar como competidor de otros 2.
  2. flexdashboard se acaba de mejorar RMarkdown, utilizando una convención simple para la disposición de la interfaz de usuario, htmlwidgets, etc. Puede usar Shiny en él, pero es limitado.
  3. Para usar Shiny, necesitará escribir más código para la interfaz de usuario y el comportamiento, aprender más cosas relacionadas con html, css, especialmente reactivas que necesitan algo de tiempo para comprender. Al final obtienes todo el poder y los controles.

Hay un matiz que debe hacerse. La interactividad no requiere necesariamente un servidor detrás de él que ejecute código. La interactividad se puede proporcionar utilizando JavaScript incrustado, que se ejecutaría en el lado del cliente (como plotly, highcharts, leaflet, etc.). Entonces, si no usamos la palabra "interactividad", pero describimos la interactividad explícitamente, entonces sus opciones se convierten en:

  • Brillante : necesita un servidor detrás para ejecutar el código R en la entrada del usuario. Puede implementar cualquier diseño. Puede ejecutar código interactivo procesando el lado del servidor (en R) o el lado del cliente (en JavaScript incrustado).
  • shinydashboard : necesita un servidor detrás para ejecutar el código R en la entrada del usuario. Puede implementar un diseño de tablero. Contiene algunos widgets específicos diseñados para funcionar en un diseño de tablero. Puede ejecutar código interactivo procesando el lado del servidor (en R) o el lado del cliente (en JavaScript incrustado).
  • flexdashboard : solo un documento que se parece a un tablero de instrumentos. También contiene algunos widgets específicos diseñados para funcionar en un diseño de tablero. Solo puede ejecutar código interactivo en el lado del cliente (en JavaScript incrustado).

Básicamente, si cualquier paquete de información existente puede ofrecer cualquier tipo de interactividad (que usa widgets html), puede usar flexdashboard y no necesita implementarlo en ningún servidor Shiny. De lo contrario, debe implementar en un servidor Shiny y debe usar Shiny o shinydashboard.


Me gusta poner módulos brillantes dentro de un tablero flexible. Siempre y cuando ponga runtime: shiny en su sección de encabezado YAML , usar módulos brillantes debería ser relativamente sencillo. Por pariente, quiero decir, tómate un día y lee todos los ejemplos de RStudio, luego intenta hacer lo mismo con tu código. Una vez que haya superado la curva de aprendizaje, los módulos en tableros flexibles hacen que el desarrollo futuro sea mucho más ágil, mentalmente fácil y, en mi experiencia, me brindan la oportunidad de concentrarme realmente en las preguntas subyacentes basadas en datos que me han pedido que aborde. Creo que flexdashboards + shiny modules es lo mejor de ambos mundos: flexdash para dividir algunos de los elementos de diseño, agregar o eliminar fácilmente una sección de código, aislar varios aspectos del código de su aplicación en un diseño visualmente distinto (el sombreado de '' trozos ''en un archivo RMD, etc.), al tiempo que le permite acceder a cosas más complejas y esencialmente shiny , como configurar observadores, representantes o diseños personalizados.


No estoy de acuerdo con que necesites tener Shiny Server para ejecutar una aplicación brillante. Simplemente alojo mi aplicación brillante en nuestro servidor en el puerto 5050 (detrás del firewall) y cualquier cliente puede acceder a la aplicación a través de ip: port. Solo estoy ejecutando 1 sesión de RStudio para lograr esto.

Si tuviera que activar el reenvío de puertos a través de nuestro enrutador, esta aplicación también sería accesible a través de Internet, pero por razones de seguridad no lo permito.

Me gusta la flexibilidad que ofrece Shiny para personalizar la página web.

ShinyDashboard es excelente ya que proporciona una apariencia comercial sin tener que escribir todo el CSS y HTML.

Flexdashboard también es bueno porque puede alojarlo en un servicio que puede manejar la rebaja en lugar de insertar la aplicación a través de un iFrame u otra cosa.