-
Notifications
You must be signed in to change notification settings - Fork 3
/
01-intro.Rmd
140 lines (101 loc) · 7.32 KB
/
01-intro.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Analisis de datos con R {-}
En este primer módulo aprenderemos a usar R para análisis de datos.
## ¿Qué es R? {-}
* R es un lenguaje de programación y un ambiente de cómputo estadístico.
* R es software libre (no dice qué puedes o no hacer con el software), de código
abierto (todo el código de R se puede inspeccionar - y se inspecciona).
* Cuando instalamos R, instala la base de R. Mucha de la funcionalidad adicional
está en **paquetes** (conjunto de funciones y datos documentados) que la
comunidad contribuye.
#### ¿Por qué R para análisis de datos? {-}
**Rutinas y funciones estadísticas**
- R fue desarrollado por expertos en estadística, por lo que tiene una adherencia rigurosa a la teoría estadística^[https://www.r-project.org/foundation/board.html].
- R es un proyecto activo al que constantemente se agrega funcionalidad para mejorar la implementación de metodologías e incluir los avances en el área de la estadística.
**Rendimiento**
- R tiene un desempeño computacional comparable o superior a otros lenguajes de programación en las rutinas estadísticas y en las tareas típicas de análisis de datos^[https://h2oai.github.io/db-benchmark/ ]: manipulación (filtrado, selección, agregación y transformación de datos), tabulación, y visualización. El alto desempeño se debe a que, al igual que otros lenguajes como Python y Julia, R utiliza bibliotecas y rutinas optimizadas, como LAPACK y BLAS^[R Core Team. (2023). R Internals: A guide to the internal structures of R and coding standards for the core team. R Project. https://cran.r-project.org/doc/manuals/r-release/R-ints.html] que están escritas en lenguajes de bajo nivel como Fortran y C. Estas implementaciones altamente eficientes permiten realizar operaciones de álgebra lineal y otras tareas computacionales de manera rápida y optimizada.
- Adicionalmente, R ofrece la capacidad de aprovechar el poder de procesamiento de sistemas con múltiples núcleos, con los que cuenta la mayor parte de los equipos actualmente. Este procesamiento en paralelo permite distribuir las tareas de manera eficiente entre los recursos disponibles y acelerar el tiempo de ejecución de los cálculos intensivos.
**Accesibilidad y reproducibilidad**
- R es gratuito y de código abierto, lo que lo hace accesible y transparente.
- R fomenta la reproducibilidad, al ser un lenguaje de código, R permite la documentación sistemática y clara de todos los pasos realizados durante el desarrollo de un proyecto.
## R: primeros pasos {-}
Para comenzar se debe descargar [R](https://cran.r-project.org), esta descarga
incluye R básico y un editor de textos para escribir código. Después de
descargar R se recomienda descargar
[RStudio](https://posit.co/download/rstudio-desktop/) (gratis y libre).
**Rstudio** es un ambiente de desarrollo integrado para R: incluye una consola,
un editor de texto y un conjunto de herramientas para administrar el espacio de
trabajo cuando se utiliza R.
Rstudio funciona como aplicación usual que se puede instalar. Pero también funciona
como aplicación web ([posit.cloud](https://posit.cloud/)), donde R corre en un servidor, y nosotros tenemos acceso a través
de un browser como Chrome o Safari. Esta es una manera buena de correr R, pues
- Tenemos acceso a máquinas más grandes
- Es más fácil garantizar reproducibilidad, y es más fácil compartir resultados
- Menos dificultades para instalar paquetes de R
Ahora probamos usar posit.cloud, donde haremos unos cálculos simples en R.
## R en análisis de datos {-}
El estándar científico para contestar preguntas o tomar decisiones es uno que
se basa en el análisis de datos. Aquí consideramos técnicas cuantitativas:
recolectar, organizar, entender, interpretar y extraer información de
colecciones de datos predominantemente numéricos. Todas estas tareas son partes
del análisis de datos, cuyo proceso podría resumirse con el siguiente diagrama:
![](img/analisis.png)
Es importante la forma en que nos movemos dentro de estos procesos en el
análisis de datos y en este curso buscamos dar herramientas para facilitar
cumplir los siguientes principios:
1. **Reproducibilidad**. Debe ser posible reproducir el análisis en todos sus
pasos, en cualquier momento.
2. **Claridad**. Los pasos del análisis deben estar documentados apropiadamente,
de manera que las decisiones importantes puedan ser entendidas y explicadas
claramente.
Dedicaremos las primeras sesiones a aprender herramientas básicas para poder
movernos agilmente a lo largo de las etapas de análisis utilizando R y nos
enfocaremos en los paquetes que forman parte del
[tidyverse](http://tidyverse.org/).
## Paquetes y el Tidyverse {-}
La mejor manera de usar R para análisis de datos es aprovechando la gran
cantidad de paquetes que aportan funcionalidad adicional. Desde
Rstudio podemos instalar paquetes (Tools - > Install packages o usar la
función `install.packages("nombre_paquete")`).
Las siguientes lineas instalan los paquetes `remotes` y `readr`.
```{r, eval=FALSE}
install.packages("remotes")
install.packages("readr")
```
Una vez instalados, podemos cargarlos a nuestra sesión de R mediante `library`. Por ejemplo, para cargar el
paquete `readr` hacemos:
```{r paquetes, message=FALSE, error=TRUE}
library(readr)
print(read_csv)
```
`read_csv` es una función que aporta el paquete `readr`, que a su vez está incluido en el *tidyverse*.
El paquete de arriba se instaló de CRAN, pero podemos instalar paquetes que
están en otros repositorios (por ejemplo [BioConductor](https://www.bioconductor.org)) o paquetes que están en GitHub.
```{r, eval = FALSE}
library(remotes)
install_github("tereom/estcomp")
```
Los paquetes se instalan una sola vez, sin embargo, se deben cargar
(ejecutar `library(readr)`) en cada sesión de R que los ocupemos.
En estas notas utilizaremos la colección de paquetes incluídos en el
[tidyverse](https://www.tidyverse.org/). Estos paquetes de R están
diseñados para ciencia de datos, y para funcionar juntos como parte de un flujo
de trabajo.
La siguiente imagen tomada de [Why the tidyverse](https://rviews.rstudio.com/2017/06/08/what-is-the-tidyverse/) (Joseph
Rickert) indica que paquetes del tidyverse se utilizan para cada
etapa del análisis de datos.
```{r, out.width = "700px"}
knitr::include_graphics("img/tidyverse.png")
```
## Recursos {-}
Existen muchos recursos gratuitos para aprender R, y resolver nuestras dudas:
* Buscar ayuda: Google, [StackOverflow](http://stackoverflow.com/questions/tagged/r) o [RStudio Community](https://community.rstudio.com).
* Para aprender más sobre un paquete o una función pueden visitar [Rdocumentation.org](http://www.rdocumentation.org/).
* La referencia principal de estas notas es el libro [R for Data Science](http://r4ds.had.co.nz/)
de Hadley Wickham.
* RStudio tiene una [Lista de recursos en línea](https://education.rstudio.com/).
* Para aprender programación avanzada en R, el libro gratuito
[Advanced R](http://adv-r.had.co.nz) de Hadley Wickham es una buena referencia.
En particular es conveniente leer la [guía de estilo](http://adv-r.had.co.nz/Style.html) (para todos: principiantes, intermedios y avanzados).
* Para mantenerse al tanto de las noticias de la comunidad de R pueden seguir
#rstats en Twitter.
* Para aprovechar la funcionalidad de [RStudio](https://github.com/rstudio/cheatsheets/raw/master/rstudio-ide.pdf).