Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

¿Qué es el brillo?

Si nunca has utilizado Shiny, ¡bienvenido! Shiny es un paquete de R que te permite crear fácilmente aplicaciones web ricas e interactivas. Shiny te permite tomar tu trabajo en R y exponerlo a través de un navegador web para que cualquiera pueda utilizarlo. Shiny te hace parecer impresionante al facilitar la producción de aplicaciones web pulidas con un mínimo de esfuerzo.

En el pasado, crear aplicaciones web era difícil para la mayoría de los usuarios de R porque:

  • Necesitas un profundo conocimiento de las tecnologías web como HTML, CSS y JavaScript.

  • Crear aplicaciones interactivas complejas requiere un análisis cuidadoso de los flujos de interacción para asegurarse de que, cuando cambie una entrada, sólo se actualicen las salidas relacionadas.

Shiny facilita considerablemente al programador de R la creación de aplicaciones web:

  • Proporciona un conjunto cuidadosamente seleccionado de funciones de interfaz de usuario (IU para abreviar) que generan el HTML, CSS y JavaScript necesarios para las tareas comunes. Esto significa que no necesitas conocer los detalles de HTML/CSS/JavaScript hasta que quieras ir más allá de lo básico que Shiny te proporciona.

  • Introducir un nuevo estilo de programación llamado programación reactiva, que rastrea automáticamente las dependencias de las piezas de código. Esto significa que cada vez que cambia una entrada, Shiny puede averiguar automáticamente cómo realizar la menor cantidad de trabajo para actualizar todas las salidas relacionadas.

La gente utiliza Shiny para:

  • Crea cuadros de mando en que realicen un seguimiento de los indicadores de rendimiento importantes de alto nivel, al tiempo que facilitan el desglose de las métricas que necesitan más investigación.

  • Sustituye cientos de páginas de PDF por aplicaciones interactivas que permitan al usuario saltar al fragmento exacto de los resultados que le interesan.

  • Comunica modelos complejos a un público no técnico con visualizaciones informativas y análisis de sensibilidad interactivos.

  • Proporciona análisis de datos de autoservicio para flujos de trabajo comunes, sustituyendo las solicitudes por correo electrónico por una aplicación Shiny que permita a los usuarios cargar sus propios datos y realizar análisis estándar. Puedes poner sofisticados análisis en R a disposición de usuarios sin conocimientos de programación.

  • Crea demostraciones interactivas para enseñar estadística y conceptos de ciencia de datos que permitan a los alumnos modificar los datos de entrada y observar los efectos posteriores de esos cambios en un análisis.

En resumen, Shiny te ofrece la posibilidad de transmitir algunos de tus superpoderes R a cualquiera que sepa utilizar la web.

¿Quién debería leer este libro?

Este libro de está dirigido a dos públicos principales:

  • Usuarios de R interesados en aprender sobre Shiny para convertir sus análisis en aplicaciones web interactivas. Para sacar el máximo partido a este libro, debes sentirte cómodo utilizando R para realizar análisis de datos y haber escrito al menos algunasfunciones.

  • Usuarios existentes de Shiny que deseen mejorar sus conocimientos de la teoría subyacente a Shiny para escribir aplicaciones de mayor calidad con mayor rapidez y facilidad. Este libro te resultará especialmente útil si tus aplicaciones empiezan a ser más grandes y empiezas a tener problemas para gestionar su complejidad.

¿Qué aprenderás?

El libro está dividido en cuatro partes:

  1. En la Parte I, aprenderás los fundamentos de Shiny para que puedas ponerte en marcha lo antes posible. Conocerás los fundamentos de la estructura de una aplicación, componentes útiles de la interfaz de usuario y las bases de la programación reactiva.

  2. La Parte II se basa en los fundamentos para ayudarte a resolver problemas comunes, como dar información al usuario, cargar y descargar datos, generar interfaz de usuario con código, reducir la duplicación de código y utilizar Shiny para programar el tidyverse.

  3. En la Parte III, profundizarás en la teoría y la práctica de la programación reactiva, el paradigma de programación en el que se basa Shiny. Si ya eres usuario de Shiny, obtendrás el máximo valor de este capítulo, ya que te proporcionará una sólida base teórica que te permitirá crear nuevas herramientas específicamente adaptadas a tus problemas.

  4. Por último, en la Parte IV terminaremos con un repaso de técnicas útiles para que tus aplicaciones Shiny funcionen bien en producción. Aprenderás a descomponer aplicaciones complejas en funciones y módulos, a utilizar paquetes para organizar tu código, a probar tu código para asegurarte de que es correcto y a medir y mejorar el rendimiento.

¿Qué no aprenderás?

Este libro se centra en la creación de aplicaciones Shiny eficaces y en la comprensión de la teoría subyacente de la reactividad. Haré todo lo posible por mostrar las buenas prácticas para la ciencia de datos, la programación en R y la ingeniería de software, pero necesitarás otras referencias para dominar estas importantes habilidades. Si te gusta lo que escribo en este libro, puede que te gusten mis otros libros sobre estos temas: R para la Ciencia de Datos, R Avanzado y Paquetes R.

También hay una serie de temas importantes específicos de Shiny que no cubro:

  • Este libro sólo cubre el conjunto de herramientas de interfaz de usuario incorporado. No ofrece el diseño más atractivo posible, pero es fácil de aprender y te llevará muy lejos. Si tienes necesidades adicionales (o simplemente te aburres con los valores predeterminados), hay otros paquetes que proporcionan interfaces alternativas. Consulta "Bootstrap" para más detalles.

  • Implementación de aplicaciones Shiny. Poner Shiny "en producción" queda fuera del alcance de este libro porque varía enormemente de una empresa a otra, y gran parte de ello no está relacionado con R (la mayoría de los retos suelen ser culturales u organizativos, no técnicos). Si eres nuevo en Shiny en producción, te recomiendo que empieces por la ponencia de Joe Cheng en rstudio::conf 2019. En ella te explicará en qué consiste poner Shiny en producción y cómo superar algunos de los retos a los que probablemente te enfrentes. Una vez que lo hayas hecho, consulta el sitio web RStudio Connect para informarte sobre el producto RStudio para la implementación de aplicaciones en tu empresa, y el sitio web de Shiny para otrosescenarios comunes de implementación.

Requisitos previos

Antes de que continúe, asegúrate de que tienes todo el software que necesitas para este libro:

R

Si aún no tienes R instalado, puede que estés leyendo el libro equivocado; en este libro doy por sentado que tienes una familiaridad básica con R. Si quieres aprender a utilizar R, te recomiendo mi libro R para la Ciencia de Datos, que está diseñado para ponerte en marcha con R sin complicaciones.

RStudio

RStudio es un entorno de desarrollo integrado (IDE) gratuito y de código abierto para R. Aunque puedes escribir y utilizar aplicaciones Shiny con cualquier entorno R (incluidos R GUI y ESS), RStudio tiene algunas funciones interesantes específicas para la creación, depuración e implementación de aplicaciones Shiny. Recomendamos descargar RStudio Desktop y probarlo, pero no es necesario para tener éxito con Shiny o con este libro.

Paquetes R

Este libro de utiliza un montón de paquetes de R. Puedes instalarlos todos a la vezejecutando

install.packages(c(
  "gapminder", "ggforce", "gh", "globals", "openintro", "profvis",
  "RSQLite", "shiny", "shinycssloaders", "shinyFeedback",
  "shinythemes", "testthat", "thematic", "tidyverse", "vroom",
  "waiter", "xml2", "zeallot"
))

Si has descargado Shiny en el pasado, asegúrate de que tienes al menos la versión 1.6.0.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Utilizar ejemplos de código

Puedes descargar material complementario de (ejemplos de código, ejercicios, etc.) en https://mastering-shiny.org. Los ejemplos de código de este libro tienen licencia MIT.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requierepermiso.

Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Mastering Shiny por Hadley Wickham (O'Reilly). Copyright 2021 Hadley Wickham, 978-1-492-04738-4".

Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Por favor, dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/mastering-shiny.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para noticias e información sobre nuestros libros y cursos, visita http://oreilly.com.

Encuéntranos en Facebook: http://facebook.com/oreilly

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://youtube.com/oreillymedia

Agradecimientos

Este libro se escribió en abierto, y los capítulos se anunciaron en Twitter cuando estuvieron completos. Es realmente un esfuerzo comunitario: muchas personas leyeron borradores, corrigieron erratas, sugirieron mejoras y aportaron contenido. Sin esos colaboradores, el libro no sería ni de lejos tan bueno como es, y les estoy profundamente agradecido por su ayuda.

Muchas gracias a las 83 personas que han contribuido con mejoras específicas a través de pull requests de GitHub (en orden alfabético por nombre de usuario): Adam Pearce (@1wheel), Adi Sarid (@adisarid), Alexandros Melemenidis (@alex-m-ffm), Anton Klåvus (@antonvsdata), Betsy Rosalen (@betsyrosalen), Michael Beigelmacher (@brooklynbagel), Bryan Smith (@BSCowboy), c1au6io_hh (@c1au6i0), @canovasjm, Chris Beeley (@ChrisBeeley), @chsafouane, Chuliang Xiao (@ChuliangXiao), Conor Neilson (@condwanaland), @d-edison, Dean Attali (@daattali), DanielDavid521 (@Danieldavid521), David Granjon (@DivadNojnarg), Eduardo Vásquez (@edovtp), Emil Hvitfeldt (@EmilHvitfeldt), Emilio (@emilopezcano), Emily Riederer (@emilyriederer), Eric Simms (@esimms999), Federico Marini (@federicomarini), Frederik Kok Hansen (@fkoh111), Frans van Dunné (@FvD), Giorgio Comai (@giocomai), Hedley (@heds1), Henning (@henningsway), Hlynur (@hlynurhallgrims), @hsm207, @jacobxk, James Pooley (@jamespooley), Joe Cheng (@jcheng5), Julien Colomb (@jcolomb), Juan C. Rodriguez (@jcrodriguez1989), Jennifer (Jenny) Bryan (@jennybc), Jim Hester (@jimhester), Joachim Gassen (@joachim-gassen), Jon Calder (@jonmcalder), Jonathan Carroll (@jonocarroll), Julian Stanley (@julianstanley), @jyuu, @kaanpekel, Karandeep Singh (@kdpsingh), Robert Kirk DeLisle (@KirkDCO), Elaine (@loomalaine), Malcolm Barrett (@malcolmbarrett), Marly Gotti (@marlycormar), Matthew Wilson (@MattW-Geospatial), Matthew T. Warkentin (@mattwarkentin), Mauro Lepore (@maurolepore), Maximilian Rohde (@maxdrohde), Matthew Berginski (@mbergins), Michael Dewar (@michael-dewar), Mine Cetinkaya-Rundel (@mine-cetinkaya-rundel), Maria Paula Caldas (@mpaulacaldas), nthobservation (@nthobservation), Pietro Monticone (@pitmonticone), psychometrician (@psychometrician), Ram Thapa (@raamthapa), Janko Thyson (@rappster), Rebecca Janis (@rbjanis), Tom Palmer (@remlapmot), Russ Hyde (@russHyde), Barret Schloerke (@schloerke), Scott (@scottyd22), Matthew Sedaghatfar (@sedaghatfar), Shixiang Wang (@ShixiangWang), Praer (Suthira Owlarn) (@sowla), Sébastien Rochette (@statnmap), @stevensbr, André Calero Valdez (@Sumidu), Tanner Stauss (@tmstauss), Tony Fujs (@tonyfujs), Stefan Moog (@trekonom), Jeff Allen (@trestletech), Trey Gilliland (@treygilliland), Albrecht (@Tungurahua), Valeri Voev (@ValeriVoev), Vickus (@Vickusr), William Doane (@WilDoane), 黄湘云 (@XiangyunHuang) y gXcloud (@xwydq).

Cómo se construyó este libro

Este libro se escribió en RStudio utilizando bookdown. El sitio web del libro está alojado con netlify y se actualiza automáticamente después de cada commit mediante Acciones de GitHub. El código fuente completo está disponible en GitHub.

Esta versión del libro se ha creado con la versión 4.0.3 de R (2020-10-10) y los siguientes paquetes:

Paquete Versión Fuente

gapminder

0.3.0

estándar (@0.3.0)

ggforce

0.3.2

estándar (@0.3.2)

gh

1.2.0

estándar (@1.2.0)

globales

0.14.0

estándar (@0.14.0)

openintro

2.0.0

estándar (@2.0.0)

profvis

0.3.7.9000

GitHub (rstudio/profvis@ca1b272)

RSQLite

2.2.3

estándar (@2.2.3)

brillante

1.6.0

estándar (@1.6.0)

shinycssloaders

1.0.0

estándar (@1.0.0)

shinyFeedback

0.3.0

estándar (@0.3.0)

shinythemes

1.2.0

estándar (@1.2.0)

pruebaque

3.0.2.9000

GitHub (r-lib/testthat@4793514)

temática

0.1.1

GitHub (rstudio/thematic@d78d24a)

tidyverse

1.3.0

estándar (@1.3.0)

vroom

1.3.2

estándar (@1.3.2)

camarero

0.2.0

estándar (@0.2.0)

xml2

1.3.2

estándar (@1.3.2)

zeallot

0.1.0

estándar (@0.1.0)

Get Dominar el brillo now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.