Video: https://www.youtube.com/watch?v=1njLOAWqLPM
Las aplicaciones web nos ayudan a facilitar el uso de nuestro trabajo, ya que no requieren programación para utilizarlas (ejemplos: https://shiny.rstudio.com/gallery/). Crear estas aplicaciones en R, mediante paquetes como "shiny" o "flexdashboard", ofrece múltiples ventajas. Entre ellas destaca la reproducibilidad, tal como veremos en torno a una aplicación para la simulación de datos (https://github.com/pablobernabeu/Experimental-data-simulation). Por un lado, los usuarios pueden exportar un registro de su actividad. Por otro lado, el código utilizado para crear estas aplicaciones se puede compartir, investigar y editar con la facilidad que ofrece un lenguaje de código abierto como R. Esto facilita el uso gratuito, el desarrollo colaborativo y una documentación accesible sobre cualquiera de los paquetes utilizados. Por último, la reproducibilidad se puede maximizar si se facilita a los usuarios que lo deseen la exportación de un código de R ajustado a sus requerimientos (más allá del código de la aplicación en general), lo cual añadiría a la aplicación las ventajas de un paquete de R. Esta última opción (no disponible actualmente en la aplicación de simulación, ni en la mayoría de las aplicaciones) se puede habilitar adaptando el código de la aplicación a funciones básicas de R.
Límites derivadas e integrales y análisis matemático.pptx
Reproducibilidad en torno a una aplicación web: opciones para facilitar la reproducibilidad en el uso final
1. Reproducibilidad en torno a
una aplicación web
Pablo Bernabeu
Estudiante de doctorado y docente auxiliar
Departamento de Psicología, Lancaster University
Miembro del Software Sustainability Institute
2. Programa
• Aplicaciones web
• Reproducibilidad en las aplicaciones
Estudio de caso: aplicación para la simulación de datos
https://github.com/pablobernabeu/Experimental-data-simulation
[Nota: Durante la presentación, se presentan ejemplos directamente de la app y del código]
• Lado del programador
• Opciones
• Lado del usuario final
• Opciones
• Opciones más avanzadas
3. Aplicaciones web
• Facilitar el acceso a nuestro trabajo y su visibilidad
• Opciones comerciales y no comerciales (código abierto)
• R dispone del marco Shiny, creado por RStudio
• Extensiones: HTML, CSS, R Markdown y todos los paquetes de R
• Servidor: https://shinyapps.io
• Documentación y comunidad extensas
• Ejemplos: https://shiny.rstudio.com/gallery/
4. Reproducibilidad en la programación
• Prácticamente ilimitada, como la de R
• Versiones de los paquetes
Binder, RStudio Cloud, etc.
• Acceso a datos
read.csv(”https://url-del-archivo.com”)
• Archivos: normalmente uno o dos, según preferencias
• .Rmd, o
• app.R, o
• ui.R y server.R
5. Reproducibilidad en el uso final
Normalmente:
• Incluso en apps creadas en R, reproducibilidad más limitada
que la que ofrece el código
• Dependiente de la memoria del usuario final
• Claro, ¡en la app no hay código!
6. Reproducibilidad en el uso final
Facilitar la reproducibilidad para el usuario:
• Registro de actividad exportable
• En caso de utilizar algún número aleatorio en la app,
facilitar uso de semilla aleatoria o personal
• set.seed()
• Particularidades: a veces es necesario cambiar la semilla
a lo largo de la app, para evitar altas correlaciones.
Multiplicar la semilla inicial por distintos números fijos,
no aleatorios, para preservar la semilla inicial.
7. Reproducibilidad en el uso final
Nivel Pro: exportar código de R personalizado
Accesibilidad de app + Reproducibilidad del código
¿Cómo programar esto?
Adaptando código de la app a código básico de R.
Facilitar la reproducibilidad para el usuario:
• Registro de actividad exportable
• En caso de utilizar algún número aleatorio en la app, facilitar uso de semilla aleatoria o personal
• set.seed()
• Particularidades: a veces es necesario cambiar la semilla a lo largo de la app, para evitar altas
correlaciones. Multiplicar la semilla inicial por distintos números fijos, no aleatorios, para
preservar la semilla inicial.
8. Reproducibilidad en el uso final
Normalmente:
• Incluso en apps creadas en R, reproducibilidad más limitada
que la que ofrece el código
• Dependiente de la memoria del usuario final
• Claro, ¡en la app no hay código!
9. Reproducibilidad en el uso final
Nivel Pro: exportar código de R personalizado
Accesibilidad de app + Reproducibilidad del código¿Cómo programar esto?
Adaptando código de la app a código básico de R.
10. Conclusión
• Las aplicaciones web normalmente tienen una
reproducibilidad más limitada que el código
Opciones
• Registro de actividad exportable
• Semilla en caso de utilizar números aleatorios
• Exportación de código de R basado en la actividad del usuario