Julio, 2018. fdsalgado@uazuay.edu.ec

¿Qué es R?

R es un entorno y lenguaje de programación el cual proporciona una amplia variedad de técnicas estadísticas (modelado lineal y no lineal, pruebas estadísticas clásicas, análisis de series temporales, clasificación, clustering, etc.) y generación de gráficos.

R está disponible como Software Libre bajo los términos GNU de la Free Software Foundation en forma de código fuente. Se compila y se ejecuta en plataformas UNIX (Linux y Mac OS) y Windows.

¿Qué es R?

Y… ¿RStudio?

RStudio es un entorno de desarrollo integrado (IDE) para R. Incluye una consola, edición y ejecución directa de código, así como herramientas para gráficos, historial, depuración y gestión del espacio de trabajo.

Instaladores

Espacio de trabajo y directorios

getwd()  # obtener directorio de trabajo *get working directory*.
## [1] "C:/R/Curso introductorio"
#dir()   # listar carpetas del directorio actual.
#list.files()

#dir.create("C:/R/Curso introductorio")

setwd("C:/R/Curso introductorio") #Establecer el directorio de trabajo 

Operaciones matemáticas básicas:

En su forma más simple, R puede ser utilizado como una calculadora:

3 + 10
## [1] 13
5 * 5
## [1] 25
12 / 3 - 7^2
## [1] -45

Operaciones matemáticas básicas:

Operaciones lógicos:

Asignación de variables

En lugar de volver a escribir 3 + 4 cada vez que lo necesitamos, podemos crear una nueva variable que almacene el resultado.

x <- 3 + 4
x
## [1] 7

'<-' es el operador de asignación (En Win: 'alt' + '-').

El nombre de una variable no puede contener espacios ni caracteres especiales.

# mi variable <- 6   # Error
mi_variable <- 6

Vectores

  • Elemento más básico en R.
  • Contiene elementos de la misma clase (son atómicos).
  • Se crea con la función c(), que significa 'concatenar' o 'combinar'.
v <- c(1.1, 10, 3.14)
v
## [1]  1.10 10.00  3.14
c(v,555,v)
## [1]   1.10  10.00   3.14 555.00   1.10  10.00   3.14

Algunas operaciones con vectores

v * 2 + 100
## [1] 102.20 120.00 106.28
mi_rc <- sqrt(v-1) # sqrt(x)  calcula la raíz cuadrada de x.
mi_rc
## [1] 0.3162278 3.0000000 1.4628739
mi_rc<- v/mi_rc
mi_rc
## [1] 3.478505 3.333333 2.146460

Algunas operaciones con vectores

Cuando indicamos a R que calcule v * 2 + 100, lo que realmente calcula es esto:

v * c (2, 2, 2) + c (100, 100, 100) 
## [1] 102.20 120.00 106.28

A esto se lo conoce como "reciclaje" de vector.

Reciclaje de elementos

c(1, 2, 3, 4) + c(0, 10)
## [1]  1 12  3 14
c(1, 2, 3, 4) + c(0, 10, 100)
## Warning in c(1, 2, 3, 4) + c(0, 10, 100): longer object length is not a
## multiple of shorter object length
## [1]   1  12 103   4

Secuencias numéricas

1:20
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
pi:10
## [1] 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
15:1
##  [1] 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1

x:y puede leerse como "secuencia de x a(:) y."

Secuencias numéricas

seq(1, 20)
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
seq(0, 10, by=0.5)
##  [1]  0.0  0.5  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5
## [15]  7.0  7.5  8.0  8.5  9.0  9.5 10.0
mi_sec <- seq(5, 10, length=20)
mi_sec
##  [1]  5.000000  5.263158  5.526316  5.789474  6.052632  6.315789  6.578947
##  [8]  6.842105  7.105263  7.368421  7.631579  7.894737  8.157895  8.421053
## [15]  8.684211  8.947368  9.210526  9.473684  9.736842 10.000000

Clases o tipos de datos

Hemos trabajdo con vectores numéricos (numeric). Otros tipos de vectores atómicos incluyen:

  • Lógico (logical: TRUE / FALSE),
  • y caracteres (character o factor)
mi_char <- c("Qué", "pena", "por")
mi_char
## [1] "Qué"  "pena" "por"
mi_msj <- c(mi_char, "Croacia")
paste(mi_msj, collapse = " ")
## [1] "Qué pena por Croacia"

Valores no disponibles

Los valores no disponibles o faltantes juegan un papel importante en las estadísticas y el análisis de datos.

A menudo, los valores faltantes no deben ignorarse, sino que deben estudiarse cuidadosamente para ver si hay un patrón subyacente o causa de su desaparición.

En R, NA se usa para representar cualquier valor que "no está disponible (Not Available)" o "falte" (en el sentido estadístico).

Valores no disponibles

x <- rnorm(1000)
y <- rep(NA, 1000)
mi_data <- sample(c(x, y), 50)
mi_na <- is.na(mi_data)
mi_na
##  [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE FALSE  TRUE
## [12] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
## [23] FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE
## [34] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
## [45] FALSE  TRUE FALSE FALSE FALSE  TRUE
sum(mi_na)
## [1] 27

Valores no disponibles

Veamos un segundo tipo de valor no disponible: NaN, que significa "no es un número (Not a Number)".

0/0
## [1] NaN
1/0
## [1] Inf
Inf - Inf
## [1] NaN

Sumario

  • RStudio
  • Espacio de trabajo.
  • Asignación de variables.
  • Vectores y secuencias.
  • Valores NA, NaN e Inf.