R para el procesamiento estadístico

TEMA I: Generalidades del entorno y lenguaje R.

Dr. Maicel Monzón Pérez

Sumario

  • Características generales del lenguaje

  • Funcionamiento de R

  • Creación, listado y remoción de objetos en memoria

  • Objetos y tipos de datos

  • Obtener ayuda

Qué es R?

  • R es un lenguaje de programación y un entorno de software para el análisis estadístico y la visualización de datos.

  • Desarrollado por Robert Gentleman y Ross Ihaka en 1993.

  • Es un software de código abierto y gratuito.

Características de R

  • Interactividad: Permite realizar análisis en tiempo real.

  • Extensibilidad: Gran cantidad de paquetes disponibles para diversas aplicaciones.

  • Visualización: Herramientas potentes para crear gráficos y visualizaciones.

  • Comunidad: Amplia comunidad de usuarios y desarrolladores.

Uso de R

  • Google efectividad publicitaria y pronósticos económicos

  • Facebook análisis imágenes de perfil

  • Twitter visualización de datos y agrupación semántica

Porqué debo usar R!

  • R es un lenguaje de programación libre, gratuito y abierto
  • Cuenta con una amplia comunidad desarrolladores
  • Lista de correo (R-help)

Porqué debo usar R!

  • Blog (R-bloggers)
  • Motor de búsqueda personalizado (RSeek.org)
  • CRAN package repository features 15313 available packages.

Porqué debo usar R!

  • Por su gran capacidad para manipular, resumir, representar y analizar datos: R es conocido como “the language of data science”
  • Amplias potencialidades de aplicación en la investigación clínica.

Porqué debo usar R!

  • Cuenta con la mayor gama de métodos estadísticos de alto rendimiento, robustos y validados por la comunidad científica.

Porqué debo usar R!

  • R te permite analizar cualquier clase de datos (datos rectangulares, texto, imagen, etc.) y tamaño de datos (big data).

R, the language of data science

Elementos clave hasta el momento

  • R es un entorno de desarrollo
  • R es un lenguaje de programación orientado a objeto con licencia GNU
  • Permite implementar procedimientos para importar, ordenar, tranformar, analizar, representar datos de muchos tipos

R es un entorno de desarrollo

https://cran.r-project.org/bin/windows/base/R-3.6.2-win.exe

R es un lenguaje de programación

  • Idioma artificial (formal)

  • Diseñado para expresar computaciones

  • Llevadas a cabo por computadoras

R es un lenguaje similar al lenguaje humano

Los objetos son como sustantivos y las funciones son como verbos

Objetos como Sustantivos

Definición: Los sustantivos representan cosas o conceptos. En R, los objetos son los “sustantivos” que contienen datos.

Ejemplo: Un vector de números o texto en R se considera un objeto.

# crea un objeto que contiene una colección de números.
numeros <- c(1, 2, 3) 

Funciones como Verbos

Los verbos expresan acciones en las lenguas humanas. De manera similar, las funciones en R son los “verbos” que realizan acciones sobre los objetos.

Ejemplo: La función sum() en R actúa como el verbo “sumar”, realizando cálculos sobre los datos.

Argumentos de Funciones como Adverbios

Si consideramos las funciones como verbos, los argumentos de las funciones pueden verse como adverbios que modifican la acción.

Ejemplo: En ‘mean(numeros)’, el argumento números especifica sobre qué datos se realiza la acción de calcular la media.

Combinación de Sustantivos y Verbos

Construcción de Sentencias: Al igual que en una oración donde los sustantivos y verbos se combinan para expresar un pensamiento completo, en R se combinan objetos (sustantivos) y funciones (verbos) para realizar operaciones.

Ejemplo: La expresión mean(numeros) es equivalente a “calcular la media de numeros”, donde “calcular” es el verbo y “la media de numeros” es el objeto.

R como Lenguaje

Estructura y Sintaxis: Al igual que el español combina sustantivos y verbos según reglas gramaticales, R combina objetos y funciones para realizar cálculos.

Características del Lenguaje: R tiene su propio vocabulario y sintaxis, permitiendo dar comandos y estructurar soluciones a problemas.

R como Lenguaje

R es un lenguaje de POO

Tipos de sistemas de POO(Hadley Wickham 2016).

  • base R (vector atómico, lista)
  • S3 (factores)
  • S4
  • R6

R implenta POO

  • Permite la reutilización del código (funciones,script, bibliotecas)

Creación de objetos

Los objetos se crean:

  • Leyendo datos de un archivo

  • Como resultado de un cálculo

  • “Asignándoles un valor”

  • etc.

Objeto vector (base R)

  • familia más importante de tipos de datos en la base R

  • las funciones que escribirá funcionarán con vectores como argumentos

Objeto vector (tipos)

  1. vectores atómicos: elementos del mismo tipo (homogéneos)

  2. listas o vectores recursivos: pueden tener elementos de varios tipos (heterogéneos)

  3. NULL: vector genérico de longitud cero

Objeto vector (tipos)

  1. Lógicos: - (TRUE o FALSE), o ( T o F)

  2. Dobles: - forma decimal ( 0.1234), científica ( 1.23e4)

  3. Enteros: - seguidas de L ( 1234L, 1e4L)

  4. Cadenas: - encerrados por comillas ( “hi”)

Objeto vector atómico

la funcion “c()” abreviatura de concatenar hace vectores más largos

lgl_var <- c(TRUE, FALSE)
int_var <- c(1L, 6L, 10L)
dbl_var <- c(1, 2.5, 4.5)
chr_var <- c("these are", "some strings")

Vectores S3 (vectores aumentados)

Se agregar atributos a vectores atómicos para creas otras estructuras de datos:

  • factores - se construyen sobre los vectores enteros

  • vectores de fecha

  • Fecha-hora (POSIXct)

  • Duraciones de tiempo (difftime)

Vectores S3 (Factores)

  • Es un vector que solo puede contener valores predefinidos

  • Se utiliza para almacenar datos categóricos

Vectores S3 (Factores)

Son útiles cuando conoce el conjunto de valores posibles, pero no todos están presentes en un conjunto de datos dados.

sex_char <- c(1, 2, 1)
sex_factor <- factor(x = sex_char, 
                     levels = c(1, 2), 
                     labels = c("masculino","femenino"))
table(sex_factor)
sex_factor
masculino  femenino 
        2         1 

Listas

cada elemento puede ser de cualquier tipo

contruir una lista

l1 <- list(
  1:3,
  "a",
  c(TRUE, FALSE, TRUE),
  c(2.3, 5.9)
)

str(l1)
List of 4
 $ : int [1:3] 1 2 3
 $ : chr "a"
 $ : logi [1:3] TRUE FALSE TRUE
 $ : num [1:2] 2.3 5.9

Marcos de datos y tibbles

  • vectores S3 más importantes

  • lista con nombre de vectores (columna)

  • la longitud de cada uno de sus vectores debe ser la misma a diferencia de las listas

Marcos de datos y tibbles

Tibble

difiere de las listas en que todos los elementos deben ser vectores con la misma longitud

Objeto Tibble (Crear)

  • convertir un dataframe a tibbles as_tibble(iris)

  • crear un nuevo tibble a partir de vectores individuales tibble()

tibble(
  x = 1:3,
  y = x * 2
)
# A tibble: 3 × 2
      x     y
  <int> <dbl>
1     1     2
2     2     4
3     3     6

tibbles (Subconjunto)

  • Se usan operadores $ y [[
df <- tibble(
  x = 1:3,
  y = x * 2
)

tibbles (Subconjunto)

Extraer por nombre

# Extract by name
df$x
[1] 1 2 3
df[["x"]]
[1] 1 2 3

tibbles (Subconjunto)

Extraer por posición

# Extract by position
df[[1]]
[1] 1 2 3

tibbles (Subconjunto)

  • usar tuberia para hacer subconjuntos
df %>% .$x
[1] 1 2 3
#> [1] 0.434 0.395 0.548 0.762 0.254
df %>% .[["x"]]
[1] 1 2 3
#> [1] 0.434 0.395 0.548 0.762 0.254

Bibliografía

https://es.r4ds.hadley.nz/

Hadley Wickham, Garrett Grolemund. 2016. R for Data Science. O´Reilly.