Operaciones aritméticas

Las operaciones aritméticas es uno de los puntos más basicos para empezar con la sintaxis en R.

# Suma
2 + 3
## [1] 5
# Resta
6 - 8
## [1] -2
# Multplicación
5 * 11
## [1] 55
# Divición
20 / 4
## [1] 5
# Potencia
2^6
## [1] 64
# Residuo
17 %%5
## [1] 2
# Divición entera
17 %/%5
## [1] 3

Operadores relacionales

Son símbolos que sirven para comparar valores. El resultado de una comparación será un valor lógico, TRUE (verdadero) y FALSE (Falso). Estas se usan mucho en condicionales (if), filtros de datos, ciclos y análisis estadístico.

# Mayor que 
10 >5
## [1] TRUE
# Menor que
10 < 5
## [1] FALSE
# Mayor o igual que
10 >= 10
## [1] TRUE
# Menor o igual que
12 <= 20
## [1] TRUE
# Igual a
12 == 12
## [1] TRUE
# Diferente de
8 != 7 
## [1] TRUE

Objetos en R

Un objeto en R es un contenedor que tiene un nombre y almacena información para posteriormente usarla,modificarla o analizarla. En R hay diferentes tipos de objetos según lo que contengan, número, texto, valor lógico, vector, matriz, lista, data frame, función, entre otros.

# Objeto númerico
x <- 21
# Objeto carácter
nombre <- "Maryorie"
# Objeto factor
escuelas <- factor(c("Estadística","Computación estadística","Investigación operativa","Matemática"))
# Objeto matriz
A <- matrix(1:16, nrow = 4, ncol = 4)
# Objeto data frame
datos <- data.frame(x, nombre)
datos
##    x   nombre
## 1 21 Maryorie
# Objeto vector 
Edades <- c(3,10,21,39,41)

Tipos de datos

Los tipos de datos es para indicarnos de que tipo de información se almaceno en un objeto en R.

x <- 12.5
class(x)
## [1] "numeric"
y <- "Maryorie"
class(y)
## [1] "character"
z <- 21
class(z)
## [1] "numeric"
t <- TRUE
class(t)
## [1] "logical"

Estructura de datos

  1. Vectores: El vector es una de las estructuras más importantes en R. Una de las características muy imporante de los vectores es que todos sus elementos deben ser generalmente del mismo tipo.
edades <- c(21,3,10,39,41)
edades
## [1] 21  3 10 39 41
class(edades)
## [1] "numeric"
nombres <- c("Maryorie","Denis","Jhovana","Johan","Endrick")
nombres
## [1] "Maryorie" "Denis"    "Jhovana"  "Johan"    "Endrick"
class(nombre)
## [1] "character"
# Acceder a un elemento de un vector
# Acceder al nombre de Endrick
nombres[5]
## [1] "Endrick"
#Acceder a la edad 41
edades[5]
## [1] 41

OBS: La posición de los elementos de un objeto empiezan desde el número 1.

  1. Matrices: Una matriz es una estructura bidimensional organizada en filas y columnas. Una matriz debe contener el mismo tipo de elemento
# Matriz 2x2
A <- matrix(1:4, nrow = 2, byrow = TRUE)
A
##      [,1] [,2]
## [1,]    1    2
## [2,]    3    4
B <- matrix(1:16, nrow = 4, byrow = FALSE)
B
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    3    7   11   15
## [4,]    4    8   12   16
G <- matrix(c(21,22,8,14,19,6,8,10,0),nrow = 3)
G
##      [,1] [,2] [,3]
## [1,]   21   14    8
## [2,]   22   19   10
## [3,]    8    6    0
G <- matrix(c(21,22,8,14,19,6,8,10,0),nrow = 3,byrow = TRUE)
G
##      [,1] [,2] [,3]
## [1,]   21   22    8
## [2,]   14   19    6
## [3,]    8   10    0
C <- matrix(c(12,15,16,11,13,12,18,10,17,14,19,13),nrow = 3, ncol = 4, byrow = TRUE)
C
##      [,1] [,2] [,3] [,4]
## [1,]   12   15   16   11
## [2,]   13   12   18   10
## [3,]   17   14   19   13
D <- matrix(c(12,15,16,11,13,12,18,10,17,14,19,13),nrow = 3,ncol = 4)
D
##      [,1] [,2] [,3] [,4]
## [1,]   12   11   18   14
## [2,]   15   13   10   19
## [3,]   16   12   17   13

Para acceder a un elemento se utiliza:

# matriz[fila, columna]
D[2,3]
## [1] 10
D[1,4]
## [1] 14

También se puede seleccionar una fila completa

D[2,]
## [1] 15 13 10 19

O también una columna completa

D[,2]
## [1] 11 13 12
  1. Arrays (Arreglo)

Es una estructura de datos que permite almacenar elementos del mismo tipo de dato organizados en una o mas dimensiones.

# Array de una dimensión
a <- array(1:5)
a
## [1] 1 2 3 4 5
# Array de 2 dimensiones
g <- array(1:6,dim = c(2,3))
g
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
# Array de 3 dimensiones
c <- array(1:12,dim = c(2,3,2))
c
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]    7    9   11
## [2,]    8   10   12

¿Cómo acceder a un elemento?

# array[fila,columna,capa]

c[2,1,2]
## [1] 8

Los arrays tienen aplicaciones en áreas como:

  1. Listas:

Es una estructura de datos que permite guardar varios objetos dentro de un mismo objeto, incluso si esos objetos son de diferentes tipos.

lista1 <- list(
  nombre = "Maryorie",
  edad = 21,
  notas = c(11,14,13),
  aprobado = TRUE
  
)
lista1
## $nombre
## [1] "Maryorie"
## 
## $edad
## [1] 21
## 
## $notas
## [1] 11 14 13
## 
## $aprobado
## [1] TRUE
# Acceder a elementos de una lista
lista1 [[1]]
## [1] "Maryorie"
lista1 [[3]]
## [1] 11 14 13
#ó
lista1$notas
## [1] 11 14 13
# ó
lista1[["notas"]]
## [1] 11 14 13
lista1[["nombre"]]
## [1] "Maryorie"
# Ver tipo de datos de los objetos de la lista
class(lista1[["edad"]])
## [1] "numeric"
# Ejemplo de lista

estudiante <-list(
  nombre = "Maryorie",
  edad = 21,
  peso = 54,
  aprobado = TRUE
)

# Cuál es la edad del estudiante?
estudiante$edad
## [1] 21
  1. Data frames

Es una estructura de datos que sirve para guardar datos en forma de tabla, es decir las organiza en filas y columnas.También nos permite trabajar con diferentes tipos de variables en una misma tabla.

Es la estructura más utilizada en Estadística y en Ciencia de datos, porque representa una base de datos:

# Ejemplos
estudiantes <- data.frame(
  nombre = c("Mileysi","Gustavo","Endrick","Johan"),
  edad = c(16,15,17,18),
  promedio = c(16.5,17,15.5,18)
)
estudiantes
##    nombre edad promedio
## 1 Mileysi   16     16.5
## 2 Gustavo   15     17.0
## 3 Endrick   17     15.5
## 4   Johan   18     18.0
nombres <- c("Dayan","Jamir","David","Xiomara")
edad <- c(22,21,20,24)

data.frame(nombres,edad)
##   nombres edad
## 1   Dayan   22
## 2   Jamir   21
## 3   David   20
## 4 Xiomara   24
# ¿Cómo acceder a los datos de un data frame?
estudiantes$edad
## [1] 16 15 17 18
estudiantes $promedio
## [1] 16.5 17.0 15.5 18.0
# También se puede acceder usando corchetes
estudiantes[,1]
## [1] "Mileysi" "Gustavo" "Endrick" "Johan"
#A una fila
estudiantes[1,]
##    nombre edad promedio
## 1 Mileysi   16     16.5
# A un elemento específico
estudiantes[1,2]
## [1] 16
# Estructura del data fame
str(estudiantes)
## 'data.frame':    4 obs. of  3 variables:
##  $ nombre  : chr  "Mileysi" "Gustavo" "Endrick" "Johan"
##  $ edad    : num  16 15 17 18
##  $ promedio: num  16.5 17 15.5 18
  1. Factores

Los factores se utilizan principalmente para representar variables categóricas.

# ejemplo
sexo <- c("F","F","M","F","M","M")
# Convertimos a factor
sexo_factor <- factor(sexo)
sexo_factor
## [1] F F M F M M
## Levels: F M
# Consultamos sus niveles
levels(sexo_factor)
## [1] "F" "M"

Los factores son especialmente importantes cuando trabajamos con variables como: