Operaciones Básicas con R Studio

Instalación y gestión de Paquetes

  1. Para instalar un paquete hay que ejecutar el siguiente código

install.packages(‘Nombre de la librería’)

  1. Para cargar una librería en R studio se debe ejecutar el siguiente código
library(shiny)

Directorio y Entorno de Trabajo

¿ Cómo encontrar tu directorio de trabajo en R?

El directorio o carpeta de trabajo es el lugar en nuestra computadora en el que se encuentran los archivos con los que estamos trabajando en R. Este es el lugar donde R buscara archivos para importarlos y al que serán exportados.

Puedes encontrar cuál es tu directorio de trabajo con la función getwd(). Sólo tienes que escribir la función en la consola y ejecutarla.

getwd()
## [1] "C:/Users/danie/Desktop/Online"

¿ Cómo cambiar el directorio?

Puedes cambiar el directorio de trabajo usando la función setwd() y ubicar la nueva ruta de trabajo.

Ejemplo: setwd(‘Nuevo_Directorio’)

Funciones de Ayuda

R dispone de un sistema de ayuda que se puede invocar bien desde el menú que aparece al iniciar el programa (opción Help) o ejecutando algunas funciones.

  1. help(“Nombre_función”): Está función genera una descripción de la variable su uso y argumentos.
help("sum")
## starting httpd help server ... done

Ejemplo

Sum of Vector Elements Description sum returns the sum of all the values present in its arguments.

Usage sum(…, na.rm = FALSE) Arguments … numeric or complex or logical vectors.

Details This is a generic function: methods can be defined for it directly or via the Summary group generic. For this to work properly, the arguments … should be unnamed, and dispatch is on the first argument.

Logical true values are regarded as one, false values as zero. For historical reasons, NULL is accepted and treated as if it were integer(0)…………

Visualizar Ejemplo de Función Ayuda

Para visualizar el ejemplo de una función ejecutar el siguiente código:

example("sum")
## 
## sum> ## Pass a vector to sum, and it will add the elements together.
## sum> sum(1:5)
## [1] 15
## 
## sum> ## Pass several numbers to sum, and it also adds the elements.
## sum> sum(1, 2, 3, 4, 5)
## [1] 15
## 
## sum> ## In fact, you can pass vectors into several arguments, and everything gets added.
## sum> sum(1:2, 3:5)
## [1] 15
## 
## sum> ## If there are missing values, the sum is unknown, i.e., also missing, ....
## sum> sum(1:5, NA)
## [1] NA
## 
## sum> ## ... unless  we exclude missing values explicitly:
## sum> sum(1:5, NA, na.rm = TRUE)
## [1] 15

Operaciones Aritméticas

En R se puede generar cualquier función aritmética

Ejemplo Operaciones Aritméticas

57 + 89
## [1] 146
45 - 87
## [1] -42
4*3^3
## [1] 108

Operaciones Lógicas

Los operadores lógicos son usados para operaciones de álgebra Booleana, es decir, para describir relaciones lógicas, expresadas como verdadero (TRUE) o falso (FALSO).

Igual

Para generar la expresión igual se utiliza los dos símbolos de igual “==” Ejemplo:

3 == 4 # simbolo de igual
## [1] FALSE

No es Igual

Para generar la expresión no es igual se utiliza el siguiente signo “!=” Ejemplo:

3!=4 # Simbolo de diferente
## [1] TRUE

Menor que

Para generar la expresión de menor que se utiliza el signo “<” Ejemplo:

3<4
## [1] TRUE

Mayor que

Para generar la expresión de menor que se utiliza el signo “>” Ejemplo:

3>4
## [1] FALSE

Vectores

Definición de un vector

Se puede construir un vector de tipo numérico, lógico o carácter. Existen diferentes formas para definir un vector en R

Primera Forma

c(0, 1, 1, 2, 3, 5, 8)
## [1] 0 1 1 2 3 5 8

La palabra C permite concatenar los elementos que conforman el vector.

Segunda Forma

1:10
##  [1]  1  2  3  4  5  6  7  8  9 10

Tercera Forma

seq(from = 1, to = 5)
## [1] 1 2 3 4 5

La funcion “from” delimita desde donde empieza el Vector y la palabra “to” en donde termia el vector secuencial.

Cuarta Forma

seq(from = 2, by = -0.1, length.out = 4)
## [1] 2.0 1.9 1.8 1.7

Añadiendo la función by = “Valor” se puede crear un vector descendente o ascendente y la funcíon length.out permite delimitar el número de veces de elemnetos dentro del vector.

Operaciones con Vectores

Las operaciones aritméticas también se pueden ejecutar con vectores

Ejemplos

c(1, 2, 3, 4) + c(10, 20, 30, 40)
## [1] 11 22 33 44
c(1, 2, 3, 4) * c(10, 20, 30, 40)
## [1]  10  40  90 160
c(1, 2, 3, 4) - c(1, 1, 1, 1)
## [1] 0 1 2 3
c(1, 2, 3, 4) + 1
## [1] 2 3 4 5
1 / c(1, 2, 3, 4, 5)
## [1] 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000
c(1, 2, 3, 4) + c(10, 100)
## [1]  11 102  13 104
c(1, 2, 3, 4, 5) + c(10, 100)
## Warning in c(1, 2, 3, 4, 5) + c(10, 100): longitud de objeto mayor no es
## múltiplo de la longitud de uno menor
## [1]  11 102  13 104  15

Vectores de caracteres

En R se pueden usar como vectores caracteres o palabras.

Ejemplos

"Hola clase"
## [1] "Hola clase"
c('Hola clase', 'Adios clase')
## [1] "Hola clase"  "Adios clase"
LETTERS[1:5]
## [1] "A" "B" "C" "D" "E"
letters[-(6:24)]
## [1] "a" "b" "c" "d" "e" "y" "z"

LETTERS: Función que permite crear el caracter en mayuscula letters : Función que permite crear el caracter en minúscula

Funciones básicas

Funciones aritméticas

Raiz cuadrada:

sqrt(9)
## [1] 3

Exponencial

exp(1)
## [1] 2.718282

PI

pi
## [1] 3.141593

Logaritmo:

log(10)
## [1] 2.302585

Logaritmo al Cuadrado

log2(10)
## [1] 3.321928

Absoluto

abs(-6)
## [1] 6

Funciones que devuelve

Signo

La función que devuelve el signo de un conjuno de datos.

sign(-5:5)
##  [1] -1 -1 -1 -1 -1  0  1  1  1  1  1

Redondeo de una operación

Con la siguiente función se puede redondear el resultado de una operación delimitando el número de decimales.

round(7 / 18, digits = 2)
## [1] 0.39

Numero de decimales

Con la siguiente funcipon se puede delimitar el número de dígitos de una operación.

options(digits=4)
pi
## [1] 3.142

Redondeo para abajo

floor(1.5)
## [1] 1

Redondeo para arriba

ceiling(1.3)
## [1] 2

Factorial

Devuelve la suma factorila de un número

factorial(5)
## [1] 120

Funciones de Resumen

Las funciones de resumen permiten el cálculo de los elementos dentro de 1 vector.

###Ejemplos

Suma

sum(1:3)
## [1] 6

Producto

prod(c(3,5,7))
## [1] 105

Mínimo

min(c(1,6,-14,-154,0))
## [1] -154

Máximo

max(c(1,6,-14,-154,0))
## [1] 6

Rango

range(c(1,6,-14,-154,0))
## [1] -154    6

Condición de Vector

¿Existe algún elemento menor a “0” dentro del vector ?

any(c(1,6,-14,-154,0) < 0)
## [1] TRUE

Identifica elementos negativos

Identifica la posicón del elemento negativo dentro del vector

En el ejemplo los elementos negativos se encuentra en la posición 3 y 4 dentro del vector.

which(c(1,6,-14,-154,0) < 0)
## [1] 3 4

Condición de todos los elementos del vector

En el siguiente ejemplo se solicita identificar si todos los elementos del vector cumplen con una condición.

all(c(1,6,-14,-154,0) < 0)
## [1] FALSE

Variables y Funciones

##Crear una variables

Para asignar un valor a una variable u objeto se utiliza el siguiente código “<-”

Ejemplo 1

x <- 1
y <- 2
z <- c(x,y)*2
z
## [1] 2 4
y <- 4
z
## [1] 2 4

Ejemplo 2

b <- c(1,2,3,4,5,6,7,8,9,10,11,12)
b <- 1:12
b
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12
b[7]
## [1] 7
b[1:6]
## [1] 1 2 3 4 5 6
b[b %% 3 == 0]
## [1]  3  6  9 12
b[c(1,6,11)]
## [1]  1  6 11
b[c(8,4,9)]
## [1] 8 4 9
b %% 3 == 0
##  [1] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE
b[b %% 3 == 0]
## [1]  3  6  9 12
sum(b)
## [1] 78
length(b)
## [1] 12
min(b)
## [1] 1
mean(b)
## [1] 6.5
sd(b)
## [1] 3.606

Ejemplo 3

one <- 1
two <- 2
one = two
one
## [1] 2
two
## [1] 2

Ejemplo 4

one <- 1
two <- 2
one == two
## [1] FALSE

Ejemplo 5

3 -> three
three
## [1] 3

Ejemplo 6

f <- function(x,y){
  c(x+1, y+1)
}
f(1,2)
## [1] 2 3
f
## function(x,y){
##   c(x+1, y+1)
## }
f(7, -3)
## [1]  8 -2

Valores Especiales

R permite identificar alertas cuando existe valores fuera del rango de la lógica de la función usada.

Ejemplo 1

Valores NA

v <- c(1,2,3)
v
## [1] 1 2 3
length(v) <- 4
v
## [1]  1  2  3 NA

Ejemplo 2

Inf/-Inf

2 ^ 1024
## [1] Inf
- 2 ^ 1024
## [1] -Inf
1 / 0
## [1] Inf

Ejemplo 3

Valor NaN

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

ESTRUCTURA DE DATOS

R permite usar múltiples tipos de Estructuras de Datos, como Vectores, Matrices, Array, Dimensiones,

Vectores

En el ejemplo se identifica un vector con 12 elementos numéricos del 1 al 12.

v <- c(1,2,3,4,5,6,7,8,9,10,11,12)
v
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12

Matrices

En el ejemplo se identifica una matriz de 3 filas por 4 columnas con elementos numéricos.

m <- matrix(data=c(1,2,3,4,5,6,7,8,9,10,11,12),nrow=3,ncol=4)
m
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12

Arrays

a <- array(c(1,2,3,4,5,6,7,8,9,10,11,12),dim=c(3,4))
a
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
w <- array(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18),dim=c(3,3,2))
w <- array(1:18,dim=c(3,3,2))
w
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]   10   13   16
## [2,]   11   14   17
## [3,]   12   15   18

Acceso a los elementos del objeto

En los siguientes ejemplos se analizaran distintas formas para acceder a un elemento dentro del conjunto de datos.

w[1,1,1]
## [1] 1
a[2,2]
## [1] 5
a[1:2,1:2]
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
a[1,]
## [1]  1  4  7 10
a[ ,1]
## [1] 1 2 3
a[1:2,]
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
a[c(1,3),]
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    3    6    9   12

Listas

Para acceder a los elementos de la lista se usa el signo “$”

e <- list(thing="hat", size="8.25")
e
## $thing
## [1] "hat"
## 
## $size
## [1] "8.25"
e$thing
## [1] "hat"
e[1]
## $thing
## [1] "hat"
e[[1]]
## [1] "hat"
g <- list("this list references another list", e)
g
## [[1]]
## [1] "this list references another list"
## 
## [[2]]
## [[2]]$thing
## [1] "hat"
## 
## [[2]]$size
## [1] "8.25"

Una lista puede contener matrices y conjuntos de datos.

Data Frames

Sirve para la creación de una estructura de datos y acceder en diferentes elementos.

teams <- c("PHI","NYM","FLA","ATL","WSN")
w <- c(92, 89, 94, 72, 59)
l <- c(70, 73, 77, 90, 102)
nleast <- data.frame(teams,w,l)
nleast
##   teams  w   l
## 1   PHI 92  70
## 2   NYM 89  73
## 3   FLA 94  77
## 4   ATL 72  90
## 5   WSN 59 102
nleast$w
## [1] 92 89 94 72 59
nleast$teams=="FLA"
## [1] FALSE FALSE  TRUE FALSE FALSE
nleast$l[nleast$teams=="FLA"]
## [1] 77
nleast[1,]
##   teams  w  l
## 1   PHI 92 70
nleast[,1]
## [1] PHI NYM FLA ATL WSN
## Levels: ATL FLA NYM PHI WSN
nleast[,2]
## [1] 92 89 94 72 59
nleast[,3]
## [1]  70  73  77  90 102
summary(nleast)
##  teams         w              l        
##  ATL:1   Min.   :59.0   Min.   : 70.0  
##  FLA:1   1st Qu.:72.0   1st Qu.: 73.0  
##  NYM:1   Median :89.0   Median : 77.0  
##  PHI:1   Mean   :81.2   Mean   : 82.4  
##  WSN:1   3rd Qu.:92.0   3rd Qu.: 90.0  
##          Max.   :94.0   Max.   :102.0