Estadística aplicada con R

Módulo 1: Generalidades e Introducción a R

Mauricio Moreno, PhD

¡Conozcámonos!

Acerca de mí

 

  • Ingeniero en Biotecnología, ESPE
  • Máster en Estadística, Katholieke Universiteit Leuven
  • Doctor en Bioinformática, Jacobs University Bremen
  • He trabajado cómo consultor freelance, maestro de Química, analista estadístico gubernamental, doctorante y postdoc
  • Tengo 10 años de experiencia en programación estadística, y actualmente soy científico bioestadístico en Bayer Crop Science en la división de Field Solutions Technologies

Acerca del curso

  • Objetivos:

    • Dar una introducción práctica al lenguaje de programación estadística R

    • Cubrir metodologías básicas de análisis estadístico con su interpretación y visualización de resultados

    • Desarrollar en el participante las destrezas necesarias para entender, interpretar y comunicar los resultados estadísticos de sus análisis

  • Lo que espero de mi audiencia

    • Entusiasmo, creatividad y respeto

Acerca del curso

  • Pre-requisitos:

    • Conocimientos básicos de estadística

    • Conexión estable a internet

  • Materiales:

    • Las presentaciones y ciertas tablas de datos se encuentran en el sitio web del curso, otros datos utilizados serán presentados a lo largo de cada clase.
  • Canales de comunicación:

Acerca del curso

  • Estructura de cada sesión:

    • 50% de presentaciones y demostraciones

    • 50% de ejercicios prácticos y aplicación de conocimiento adquirido

    • Un receso de 10 a 15 minutos en la mitad de cada sesión

  • Trabajo final del curso:

    • Opción 1: Realización de un reporte estadístico con tus propios datos.

    • Opción 2: Cumplir con la sugerencia de análisis a realizar sobre distintas tablas de datos en el sitio web del curso.

    • La aprobación del curso se conseguirá con una nota mínima de 7/10

Sobre el trabajo final

  • Opción 1:

    • La estructura básica que espero de un reporte estadístico es : título, resumen, objetivos, metodología, resultados, conclusiones (bibliografía dependiendo si tiene sentido ponerla) y apéndice.

    • En caso de presentar bibliografía, el estilo que más te agrade está bien.

    • El contenido del reporte debe estar escrito en una manera simple y entendible para el lector en general. No hace falta entrar a profundidad en conceptos estadísticos.

  • Opción 2:

    • Resolver las preguntas establecidas en el sitio web del curso.
  • ES IMPRESCINDIBLE el presentar el código de R (script) usado en el reporte a manera de Apéndice, independientemente de la opción que optes para tu trabajo final. Para la opción 1, en el apéndice debe contar también con el análisis exploratorio de los datos.

  • Envío del reporte final debe ser hasta antes de las 23H59 GMT-5 (hora de Ecuador continental) del 19 de abril del año en curso en formato pdf a mi correo electrónico ([email protected]).

  • La fecha de entrega de calificaciones del reporte la daré a conocer dependiendo del número de trabajos entregados.

Recomendaciones

  • De ser posible, sigue las sesiones en una tablet/otro monitor/otro ordenador (o practica el dominio de ALT+TAB)

  • Aliento el uso de datos propios (¡este es un curso mayoritariamente práctico!)

  • Solo existe un tipo de “pregunta tonta”: la que no se hace

  • No sentirse intimidado por recursos extras y complementarios mayoritariamente en idioma inglés

Recomendaciones

  • Durante el curso se espera que sigas y reproduzcas en tu ordenador en tiempo real el código de R que escribiré para cada ejemplo. ¡NO DESESPERES si no alcanzas mi ritmo! Los ejercicios que veremos en cada clase, los subiré resueltos a la página web del curso un día después del término de cada sesión

  • Nuevamente, por si tienes dudas e inquietudes, puedes comunicarte conmigo mediante los canales de comunicación anteriormente mencionados.

Introducción a R

Una muy breve historia de R

 

  • 1991: Robert Gentleman y Ross Ihaka (Universidad de Auckland, NZ) empiezan a desarrollar R
  • 1995: R se convierte en un proyecto open-source
  • 1997: Se establecen el Comprehensive R Archive Network (CRAN) y el R core group
  • 2000: Lanzamiento de R versión 1.0.0
  • 2003: Se establece la R Foundation
  • 2004: Se lleva a cabo la primera conferencia UseR! en Viena, Austria
  • 2006: Se edita el primer número del R Journal
  • 2011: Lanzamiento de RStudio versión beta
  • 2016: Lanzamiento de RStudio versión 1.0.0
  • 2017: CRAN alcanza más de 10000 librerías públicas

¿Por qué R?

  • Su uso se va extendiendo cada vez más en el ámbito académico (e industrial)

  • Software libre

  • Amplio abanico de librerías (19223 al 19.02.2023)

  • ¡Basta comunidad de R enthusiasts!

  • Versátil:

    • Gráficos listos para publicación

    • Generación de reportes, páginas web, presentaciones y libros en distintos formatos (rmarkdown, blogdown, quarto)

    • Construcción de aplicaciones interactivas para visualización/análisis de datos (rshiny)

Instalación de R

  1. Ingresa a https://cran.r-project.org/bin/windows/base/

  2. Descarga la última versión disponible de R

  3. Ejecuta el archivo .exe para iniciar la instalación

    • Recomendado: No cambies el directorio sugerido por el asistente de instalación

    • Opcional: No instalar traducciones de los mensajes de R

Instalación de RStudio

  1. Ingresa a https://posit.co/download/rstudio-desktop/#download
  2. Click en la opción de instalar “RStudio Desktop for Windows”
  3. Ejecuta el archivo .exe para iniciar la instalación
    • No cambies las sugerencias pre-establecidas para la instalación
    • En el caso de tener una versión de R anterior a la previamente instalada, es probable que la primera vez que abramos RStudio, este nos pregunte que version queremos usar (recomendado usar la última versión de R)

Instalación de Rtools (opcional)

  • Rtools es una cadena de herramientas para compilar librerías de R en Windows basada en lenguajes C/C++/Fortran.

  • No es necesario en sistemas operativos de Apple o basados en Unix (Linux).

  • Se puede usar R en Windows sin necesidad de Rtools por la existencia de versiones de librerías en formato binario (ya previamente compiladas).

  • Las ventajas de contar con Rtools:

    • Posibilidad de actualizar librerías a sus mas recientes versiones.

    • Compilación de versiones beta de librerías experimentales aun no disponibles en CRAN.

    • Uso de librerías específicas que necesitan de Rtools para su funcionamiento (ej. rstan)

  • En caso de que desees instalar Rtools, sigue las instrucciones en este link https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html

GUI RStudio

GUI RStudio

  1. Editor: ventana donde escribimos código. Puede contener tantas pestañas como scripts de R tengamos abiertos. No se ejecuta a no ser que ordenemos a R hacerlo.

  2. Ambiente/historia de trabajo: nos permite visualizar los objetos que vayamos creando durante la ejecución del código así como el orden de los comandos ejecutados.

  3. Consola: o terminal de R, es la interface directa de RStudio con R. En esta podemos ejecutar comandos línea por línea y visualizar los resultados de la ejecución de lo que escribamos en el editor.

  4. Varias pestañas de importancia:

    • Plots: donde se producirán los plots que ejecutemos

    • Packages: listado de librerías instaladas

    • Help: ayuda de R (activada por comando o búsqueda manual)

    • Viewer: crea una ventana fuera del ambiente de RStudio para visualizar gráficos

Tipos de objetos en R

  • En R, los objetos son distintas formas de almacenar datos/información

  • Existen varios tipos de objetos en R, los mas básicos:

    • Vectores

    • Tablas de datos

    • Listas

    • Matrices

Vectores

  • Un vector es un contenedor de elementos de la misma clase
vector_a <- c(1, 2, 3)                               # números enteros/reales (num)
vector_b <- c("uno", "dos", "tres")                  # caracteres (chr)
vector_c <- as.Date(c("2000-01-01", "2000-01-02"))   # fechas (Date)
vector_d <- as.factor(c("A", "B", "C"))              # factores (Factor)
  • Sin embargo, operaciones como estas son válidas
c(vector_a, vector_b)
[1] "1"    "2"    "3"    "uno"  "dos"  "tres"
c(vector_a, vector_c)
[1]     1     2     3 10957 10958
c(vector_b, vector_d)
[1] "uno"  "dos"  "tres" "1"    "2"    "3"   

Vectores

  • Cuando elementos de distinta clase son almacenados en un vector, R los transforma

  • ¿Cómo podemos saber la clase de un objeto de R?

vector_e <- c("1", "2", 3, 4)

Vectores

  • Cuando elementos de distinta clase son almacenados en un vector, R los transforma

  • ¿Cómo podemos saber la clase de un objeto de R?

vector_e <- c("1", "2", 3, 4)
str(vector_e)
 chr [1:4] "1" "2" "3" "4"
  • str es un comando base de R. Es el comando mas simple para explorar la clase de un objeto.

  • Pero ya hablaremos de comandos y librerías en breve…

Ejercicio 1.1

  • Determina la clase de los vectores x, y, z y las combinaciones c(x, y), c(z, x)
x <- c("Lunes", "Martes", "Miércoles")
y <- c(F, T, F, T, T, T)
z <- c(2+3i, 1i, sqrt(2i))

Tablas de datos

  • Arreglo bidimensional que permite almacenar datos de distintas clases

  • ¿Cómo creo tablas de datos en R?

tabla <- data.frame(variable1 = c(1, 2, 3, 4, 5),
                    variable2 = c("A", "B", "C", "D", "E"))

Tablas de datos

  • Arreglo bidimensional que permite almacenar datos de distintas clases

  • ¿Cómo creo tablas de datos en R?

tabla <- data.frame(variable1 = c(1, 2, 3, 4, 5),
                    variable2 = c("A", "B", "C", "D", "E"))

tabla
  variable1 variable2
1         1         A
2         2         B
3         3         C
4         4         D
5         5         E
  • ¿Cómo importo tablas de datos en R? (mediante la librería de base, o librerías externas)

Listas

  • Arreglo multidimensional de elementos no necesariamente del mismo tipo ni misma longitud
lista <- list(lista1 = vector_a,
              lista2 = tabla)

Listas

  • Arreglo multidimensional de elementos no necesariamente del mismo tipo ni misma longitud.
lista_a <- list(lista1 = vector_a,
                lista2 = tabla)
lista_a
$lista1
[1] 1 2 3

$lista2
  variable1 variable2
1         1         A
2         2         B
3         3         C
4         4         D
5         5         E

Indexación

  • Todos los elementos de un objeto de R tienen un índice.

  • Esto permite el acceder a elementos específicos de un objeto mediante su índice.

  • ¿Cuál es el segundo elemento del vector_a?

vector_a[2]
[1] 2
  • ¿Cuál es el valor en la columna 1, fila 3 de la tabla de datos tabla?
tabla[3,1] # [fila, columna]
[1] 3

Indexación

  • ¿Cuál es el segundo elemento de la lista lista_a?
lista_a[[2]]
  variable1 variable2
1         1         A
2         2         B
3         3         C
4         4         D
5         5         E
  • ¿Cuál es el valor en la columna 1, fila 3 de la tabla de datos que es el segundo elemento de la lista lista_a?
lista_a[[2]][3,1]
[1] 3

Ejercicio 1.2

  • En la lista_a que creamos anteriormente, ¿cuál es el valor en la columna 2, fila 4 de la tabla de datos almacenado como segundo objeto de esta lista?

Librerías de R

  • Una librería es un conjunto de funciones que son invocadas mediante sus nombres exactos (comandos) y ejecutadas de acuerdo a los argumentos que requieran

    • En los ejemplos anteriores: as.Date, as.factor, str, y data.frame son comandos de la librería base de R
  • Existen dos tipos de librerías en R

    • Librerías base de R (disponibles desde todo inicio de sesión)

    • Librerías externas de R (requieren ser instaladas una única vez y llamadas previamente al análisis)

Instalación de librerías en R

  • Existen dos formas de instalar librerías en R

    1. Mediante GUI de RStudio

    2. Mediante el editor o la consola, ventanas 1 y 3 de RStudio, respectivamente

  • En este curso nos enfocaremos en hacer mínimo uso de la GUI. El motivo: mientras menos dependemos de la GUI, nuestros códigos (scripts) serán mas reproducibles e independientes de nuestra intervención cada vez que sean ejecutados.

Instalación y llamado de librerías en R

  • El comando base de R para instalar librerías es install.packages

  • Puede instalar una librería a la vez:

install.packages("ggplot2")
  • O más de una librería a la vez:
install.packages(c("palmerpenguins","fdth", "flextable", "readxl", "modeest"))
  • Para llamar (cargar) una librería en R se usa el comando base library()
library(ggplot2)

Importar tablas de datos a R

  • La librería base de R permite importar datos de archivos de texto (.txt) y archivos de valores separados por comas (.csv) mediante los comandos read.table() y read.csv() respectivamente.

  • Pero en la realidad, la mayoría de personas usamos actualmente Excel para llevar control de nuestros datos. En R, podemos importar datos de Excel mediante la librería readxl:

library(readxl)                           # invocamos la librería
rot_berlin <- read_excel(file.choose())   # creamos un objeto (tabla de datos) y llamamos la función read_excel
  • ¡Esta opción no es óptima!

Importar tablas de datos a R

  • Idealmente tus códigos (scripts) deben ser lo mas posiblemente reproducibles. Para comenzar, te doy las siguientes recomendaciones:

    1. Crea un folder para cada proyecto

    2. En este folder copia los archivos de Excel relacionados

    3. Crea dentro de este folder un script de R, ejemplo “sesion1.R”

    4. El primer paso en este script, es indicarle a R el directorio de trabajo (con el comando base setwd())

    5. ¡Estamos entonces listos para cualquier análisis que deseemos hacer!

Importar tablas de datos a R

setwd("C:/Users/mmore/Documents/cursos_uce_2023/datos/") # directorio de trabajo
library(readxl)                           # invocamos la librería
rot_berlin <- read_excel("rotXLS.xlsx")   # creamos un objeto (tabla de datos) y llamamos la función read_excel

Importar tablas de datos a R

setwd("C:/Users/mmore/Documents/cursos_uce_2023/datos/") 
library(readxl)                           # invocamos la librería
rot_berlin <- read_excel("rotXLS.xlsx")   # creamos un objeto (tabla de datos) y llamamos la función read_excel
head(rot_berlin)                          # chequeamos que nuestro archivo se halla importado correctamente
# A tibble: 6 × 12
  date                cases  week incidence    FM    RSK SHK_TAG    PM    TMK
  <dttm>              <dbl> <dbl>     <dbl> <dbl>  <dbl>   <dbl> <dbl>  <dbl>
1 2001-01-07 00:00:00     0    14      0     3.35 0          0   1003.  3.86 
2 2001-01-14 00:00:00     8    15      0.23  1.65 0          0   1029. -2.35 
3 2001-01-21 00:00:00    12    16      0.34  3.15 0.0545     0.2 1018. -0.364
4 2001-01-28 00:00:00    59    17      1.69  5.98 3.75       0    992.  2.47 
5 2001-02-04 00:00:00    55    18      1.57  5.88 6.39       3.3  999. -4.92 
6 2001-02-11 00:00:00    76    19      2.17  4.68 0.218      0   1024.  6.29 
# … with 3 more variables: TXK <dbl>, TNK <dbl>, UPM <dbl>

¡A tener en cuenta antes de continuar!

  • Antes de sumergirnos en el uso de R, es importante definir algunas cosas:

    • Para asignar contenido (valores) a un objeto, los operadores de R son <- o =

    • R es sensible a mayúsculas y minúsculas (Tabla ≠ tabla)

    • R no es sensible a indentaciones (como Python)

for (i in 1:20){
  x = 0 + i
  print(x)
}
for (i in 1:20){
x = 0 + i
print(x)
}

¡A tener en cuenta antes de continuar!

  • Una buena práctica de programación es comentar qué hace tu código con el símbolo #

¡A tener en cuenta antes de continuar!

  • Una buena práctica de programación es comentar qué hace tu código con el símbolo #
for (i in 1:20){ # este loop imprime números del 1 al 20 
  x = 0 + i
  print(x)
}
  • Podemos también comentar líneas de código. Al comentarlas, estas no se ejecutarán (un atajo es seleccionar las líneas de código a comentar, y presionar al mismo tiempo “Ctrl + shift + c”)
# Este loop quizá me sirva después, lo comento
# for (i in 1:20){ # este loop imprime números del 1 al 20
#   x = 0 + i
#   print(x)
# }

¡A tener en cuenta antes de continuar!

  • Es impráctico y quizá imposible memorizar los argumentos de las cientos de funciones de R. Para ello contamos con la ayuda de R que tiene la siguiente sintaxis ?nombre_de_la_función:
?print()

¡A tener en cuenta antes de continuar!

  • R NO reconoce nombres de objetos que comiencen con un número, o nombres que contengan espacios vacíos
1x <- 1
Error: <text>:1:2: unexpected symbol
1: 1x
     ^
x y <- 1
Error: <text>:1:3: unexpected symbol
1: x y
      ^

Cuando R importa tablas de datos, si encuentra nombres de columnas con números como el primer caracter reformatea automáticamente dichos valores.

¡A tener en cuenta antes de continuar!

  • Existen varias formas de correr tu código en R

    • Con el ícono “Run” en la esquina superior derecha de la Ventana del editor.

    • Desde una ventana del prompt de Windows (usuarios intermedios y avanzados).

    • Y mi preferida: el atajo “Ctrl + Enter”. Esta última tiene la ventaja de correr línea por línea el código y también de correr únicamente sobre líneas previamente seleccionadas.

Operaciones estadísticas básicas

  • Media aritmética
x <- c(6.5, 5.5, 8.9, 10.5, 8.7, 6.9, 5.9, 6.5, 4.7, 5.6, 4.8, 8.9, 9.9, 10.7, 5.3)
mean(x)
[1] 7.286667
  • Mediana
median(x)
[1] 6.5
  • Moda (R no tiene una función base para la moda, una solución es la librería modeest)
library(modeest)
mlv(x, method = "mfv")
[1] 6.5 8.9

Operaciones estadísticas básicas

  • Desviación estándar
sd(x)
[1] 2.107425
  • Varianza
var(x)
[1] 4.441238
(sd(x))^2
[1] 4.441238
  • Cuartiles
quantile(x)
   0%   25%   50%   75%  100% 
 4.70  5.55  6.50  8.90 10.70 

Ejercicio 1.3

El siguiente vector contiene dos valores perdidos NA. La mayoría de funciones en R no lidian con datos perdidos a menos que les sea explícitamente indicado. Por medio de la ayuda de R (por ejemplo, ingresa ?mean() en la consola) encuentra la manera de indicarle a R que ignore los NA y realice los cálculos de la media aritmética, la mediana, la moda, la desviación estándar, la varianza y los cuartiles usando las funciones anteriormente enunciadas.

ej11 <- c(108.5, 75.3, 67.5, 93.6, 153.8, 113.9, NA, 133.8, 47.8, 71.1, NA)

Tip: basta con que veas la ayuda de una sola función para revisar el argumento que tienes que modificar. El mismo argumento es común a todas las demás funciones

Estadísticos descriptivos y tablas de frecuencia

Para ilustrar esta sección, utilizaremos la base de datos de “Palmer penguins”:

  • Los datos de Palmer Penguins fueron recolectados y puestos a disposición del público en general por la Dr. Kristen Gorman (estación Palmer, Antártida) y se encuentran disponibles en la librería palmerpenguins.

 

Estadísticos descriptivos

La forma mas sencilla de calcular los estadísticos descriptivos de una tabla de datos es usando la función base summary()

library(palmerpenguins)
summary(penguins)
      species          island    bill_length_mm  bill_depth_mm  
 Adelie   :152   Biscoe   :168   Min.   :32.10   Min.   :13.10  
 Chinstrap: 68   Dream    :124   1st Qu.:39.23   1st Qu.:15.60  
 Gentoo   :124   Torgersen: 52   Median :44.45   Median :17.30  
                                 Mean   :43.92   Mean   :17.15  
                                 3rd Qu.:48.50   3rd Qu.:18.70  
                                 Max.   :59.60   Max.   :21.50  
                                 NA's   :2       NA's   :2      
 flipper_length_mm  body_mass_g       sex           year     
 Min.   :172.0     Min.   :2700   female:165   Min.   :2007  
 1st Qu.:190.0     1st Qu.:3550   male  :168   1st Qu.:2007  
 Median :197.0     Median :4050   NA's  : 11   Median :2008  
 Mean   :200.9     Mean   :4202                Mean   :2008  
 3rd Qu.:213.0     3rd Qu.:4750                3rd Qu.:2009  
 Max.   :231.0     Max.   :6300                Max.   :2009  
 NA's   :2         NA's   :2                                 

Ejercicio 1.4

  • R cuenta con una amplia diversidad de tablas de datos pre-instaladas. Para invocarlas podemos usar el comando data() con el nombre de la tabla dentro de los paréntesis. Calcula los estadísticos descriptivos de la tabla de datos de nombre “iris”.

Tablas de frecuencia

  • Existen dos formas de crear tablas de frecuencia:

    • A partir de variables categóricas

    • Categorizando una variable continua

  • Usualmente se presentan:

    • Frecuencia absoluta: número de observaciones por categoría

    • Frecuencia acumulada: suma de frecuencias absolutas

    • Frecuencia relativa: frecuencia absoluta/total de observaciones

    • Frecuencia relativa acumulada: suma de frecuencias relativas

Tablas de frecuencia

  • A partir de una variable categórica
library(fdth)                     # ftdh es una librería que nos permite calcular tablas de frecuencia
attach(penguins)                  # attach es un comando que convierte las columnas en objetos

Tablas de frecuencia

  • A partir de una variable categórica
library(fdth)                   # fdth es una librería que nos permite calcular tablas de frecuencia
attach(penguins)                # attach es un comando que convierte las columnas en objetos
head(penguins)                  # le damos un vistazo a las variables (columnas)
# A tibble: 6 × 8
  species island    bill_length_mm bill_depth_mm flipper_l…¹ body_…² sex    year
  <fct>   <fct>              <dbl>         <dbl>       <int>   <int> <fct> <int>
1 Adelie  Torgersen           39.1          18.7         181    3750 male   2007
2 Adelie  Torgersen           39.5          17.4         186    3800 fema…  2007
3 Adelie  Torgersen           40.3          18           195    3250 fema…  2007
4 Adelie  Torgersen           NA            NA            NA      NA <NA>   2007
5 Adelie  Torgersen           36.7          19.3         193    3450 fema…  2007
6 Adelie  Torgersen           39.3          20.6         190    3650 male   2007
# … with abbreviated variable names ¹​flipper_length_mm, ²​body_mass_g

Tablas de frecuencia

  • A partir de una variable categórica
library(fdth)                   # fdth es una librería que nos permite calcular tablas de frecuencia
attach(penguins)                # attach es un comando que convierte las columnas en objetos
tabla_frec1 <- fdt_cat(species) # fdt_cat es la función de ftdh que calcula la tabla de frecuencia

Tablas de frecuencia

  • A partir de una variable categórica
library(fdth)                   # fdth es una librería que nos permite calcular tablas de frecuencia
attach(penguins)                # attach es un comando que convierte las columnas en objetos
tabla_frec1 <- fdt_cat(species) # fdt_cat es la función de ftdh que calcula la tabla de frecuencia
tabla_frec1
  Category   f   rf rf(%)  cf  cf(%)
    Adelie 152 0.44 44.19 152  44.19
    Gentoo 124 0.36 36.05 276  80.23
 Chinstrap  68 0.20 19.77 344 100.00
  • f: frecuencia absoluta

  • rf: frecuencia relativa, rf(%): frecuencia relativa en %

  • cf: frecuencia acumulada, cf(%): frecuencia acumulada en %

Tablas de frecuencia

  • Categorizando una variable continua
tabla_frec2 <- fdt(body_mass_g, na.rm = T)

Tablas de frecuencia

  • Categorizando una variable continua
tabla_frec2 <- fdt(body_mass_g, na.rm = T)
tabla_frec2
 Class limits  f   rf rf(%)  cf cf(%)
  [2673,3042) 11 0.03  3.20  11  3.20
  [3042,3411) 47 0.14 13.66  58 16.86
  [3411,3780) 71 0.21 20.64 129 37.50
  [3780,4149) 53 0.15 15.41 182 52.91
  [4149,4518) 45 0.13 13.08 227 65.99
  [4518,4887) 41 0.12 11.92 268 77.91
  [4887,5256) 28 0.08  8.14 296 86.05
  [5256,5625) 26 0.08  7.56 322 93.60
  [5625,5994) 16 0.05  4.65 338 98.26
  [5994,6363)  4 0.01  1.16 342 99.42
  • La librería fdth categoriza una variable continua en base a tres distintos algoritmos. El “default” es el algoritmo “Sturges” (ver ?fdth() para más información).

¿Cómo exporto mis tablas?

  • Existen varias opciones para exportar tablas a otros formatos (.pdf, .docx, .html)
library(flextable)
ft1 <- flextable(tabla_frec1)
ft2 <- flextable(tabla_frec2[[1]]) # tabla_frec2 es una lista
save_as_docx("Tabla_1" = ft1, "Tabla_2" = ft2, 
             path = "C:/Users/mmore/Documents/cursos_uce_2023/est-apl-uce-2023/datos/tablas.docx")
detach(penguins) # IMPORTANTISIMO!

Ejercicio 1.5

Crea una tabla de frecuencia categorizando la variable bill_depth_mm y exportala a un archivo de Word en tu directorio de trabajo

¡Antes de terminar por hoy!

Gráficos listos para publicación

Gráficos listos para publicación

Gráficos listos para publicación

Animaciones

Animaciones

Animaciones

Páginas web

Reportes

Apps interactivas (Shiny Apps)

¡Gracias!