Está en la página 1de 21

Guía - Introducción al R

2023-2

Instalación R y Rstudio
Para iniciar el uso del software R usaremos esta esta guía que nos permitirá explorar las diversas opciones
básicas que el R ofrece.

1. Inicie el R o Rstudio en su computadora. Si no lo tiene instalado o esta obsoleto proceda a la


intalación o actualización.

LINK para descargar la última versión de R : https://cloud.r-project.org/ (https://cloud.r-project.org/)

LINK para descargar Rstudio: https://posit.co/products/open-source/rstudio/


(https://posit.co/products/open-source/rstudio/)

Para la instalación se procede primero a instalar el software R y luego el software Rstudio, en caso requiera
ayuda, seguir lo indicado en el siguiente video:

https://www.youtube.com/watch?
v=Nmu4WPdJBRo&list=PLbDLkhJ5sFvCWFbP4tAFALHkNWNFo_FiL&index=2
(https://www.youtube.com/watch?
v=Nmu4WPdJBRo&list=PLbDLkhJ5sFvCWFbP4tAFALHkNWNFo_FiL&index=2)

Tambien existe la opción de trabajar con el Rstudio − cloud: https://posit.cloud/ (https://posit.cloud/),


pudiendo registrase con su gmail PUCP, esta opción permite usar el Rstudio sin preocuparse de las
actualizaciones.

2. Tanto en R como en Rstudio verá una ventana donde estara la consola y en otra ventana el editor
para escribir y digitar los códigos. Nota: Rstudio contiene la consola de R en uno de sus paneles.

3. Trabajaremos en el editor para digitar los códigos y veremos los resultados en la consola o en otras
ventanas que se generen, por ejemplo las ventanas de las gráficas

Para conocer mejor la interfaz de Rstudio revisar el siguiente video:

https://www.youtube.com/watch?v=skPzCkvr8Cw&list=PLbDLkhJ5sFvCWFbP4tAFALHkNWNFo_FiL&index=3
(https://www.youtube.com/watch?
v=skPzCkvr8Cw&list=PLbDLkhJ5sFvCWFbP4tAFALHkNWNFo_FiL&index=3)

Instalar paquetes en R
Podemos instalar paquetes usando la función install.packages(), dando como argumento el nombre del
paquete que deseamos instalar, entre comillas.

Una vez concluida la instalación de un paquete, podrás usar sus funciones con la función library(), sólo tienes
que colocar como argumento el nombre del paquete que quieres utilizar.

Ejemplo sobre la instalación del paquete “ggplot2” que sirve para organizar gráficos y su uso:

install.packages("ggplot2")

## Warning: package 'ggplot2' is in use and will not be installed


library(ggplot2)

Otra manera de instalar paquetes en el Rstudio es mediante la opción “Install” que se encuentra dentro de
Packages en el Explorador de archivos y gráficos.

Carga y descarga de datos


Un archivo de texto (.csv o .txt) puede ser leído usando el comando read.table() o el comando read.csv(). El
contenido es almacenado en una hoja de datos.

Ejemplos:

data1 <- read.csv(file = 'DataEDT.csv')


str(data1)

## 'data.frame': 100 obs. of 6 variables:


## $ Lote : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Premezcla : num 9.83 8.25 12.37 10.46 11.86 ...
## $ Mezcla : num 20.5 19.2 18.8 17.3 15.8 ...
## $ Corte.y.Pesado : num 29.4 27.9 29.2 28.6 26.6 ...
## $ Moldeado : num 29.6 29.6 29.9 30.7 29.6 ...
## $ Envasado.al.vacio: num 13.6 13.6 12.2 13.1 11 ...

data1
## Lote Premezcla Mezcla Corte.y.Pesado Moldeado Envasado.al.vacio
## 1 1 9.83 20.52 29.38 29.63 13.62
## 2 2 8.25 19.25 27.86 29.55 13.59
## 3 3 12.37 18.84 29.20 29.86 12.20
## 4 4 10.46 17.30 28.61 30.67 13.07
## 5 5 11.86 15.80 26.65 29.55 11.03
## 6 6 13.51 21.94 30.58 29.91 11.85
## 7 7 9.31 20.67 28.37 30.90 13.30
## 8 8 11.28 19.81 27.32 30.06 12.07
## 9 9 12.50 20.30 29.59 29.78 13.37
## 10 10 11.61 20.58 30.62 30.08 12.57
## 11 11 9.73 20.24 29.37 30.21 10.19
## 12 12 13.88 18.68 26.98 29.94 12.04
## 13 13 9.83 20.98 29.31 30.56 10.47
## 14 14 9.08 14.47 26.81 30.03 12.86
## 15 15 8.94 18.39 30.73 29.52 12.07
## 16 16 11.33 23.61 28.34 29.94 9.33
## 17 17 11.38 21.08 32.82 30.48 11.74
## 18 18 12.13 17.05 30.82 29.58 12.36
## 19 19 8.80 21.39 28.01 30.82 12.90
## 20 20 10.92 22.01 30.46 29.73 10.94
## 21 21 13.85 19.74 28.29 29.84 12.27
## 22 22 11.91 21.19 33.25 30.99 11.27
## 23 23 11.38 19.44 30.52 29.25 10.33
## 24 24 9.70 20.41 30.22 30.85 12.21
## 25 25 5.05 18.08 31.66 30.56 12.10
## 26 26 7.98 22.66 32.46 31.27 10.88
## 27 27 8.62 20.76 30.62 30.49 10.63
## 28 28 12.21 21.13 31.23 30.27 10.12
## 29 29 13.05 18.79 28.58 29.37 11.70
## 30 30 7.96 20.18 31.79 30.34 12.22
## 31 31 7.21 19.51 34.36 29.94 13.51
## 32 32 6.63 18.41 34.67 30.64 11.50
## 33 33 9.51 18.03 30.08 28.81 11.34
## 34 34 9.44 18.80 29.69 29.47 12.65
## 35 35 11.13 22.23 31.10 30.70 12.35
## 36 36 5.35 21.37 31.70 30.00 12.65
## 37 37 8.90 21.76 27.56 30.44 12.11
## 38 38 12.39 20.59 27.66 29.14 10.07
## 39 39 9.76 19.68 31.95 30.21 13.03
## 40 40 7.81 17.86 31.04 30.63 12.12
## 41 41 8.63 20.30 29.82 31.13 13.29
## 42 42 11.09 19.63 24.55 30.26 12.46
## 43 43 7.85 22.25 29.69 29.34 12.03
## 44 44 12.24 21.68 30.97 31.29 10.39
## 45 45 12.44 19.33 28.69 29.75 12.50
## 46 46 10.97 19.91 32.27 30.20 13.28
## 47 47 10.15 21.23 32.79 30.29 11.01
## 48 48 8.34 16.81 30.46 29.76 13.62
## 49 49 10.34 21.27 30.41 29.58 12.16
## 50 50 11.34 16.11 30.73 30.01 11.56
## 51 51 10.65 17.29 30.55 30.06 12.84
## 52 52 4.17 17.55 32.18 29.70 12.25
## 53 53 9.64 22.43 28.56 30.69 11.26
## 54 54 10.62 18.55 30.59 29.92 12.48
## 55 55 11.57 17.87 31.91 28.36 12.80
## 56 56 11.28 22.88 27.74 29.72 11.66
## 57 57 11.52 21.70 30.26 28.55 11.89
## 58 58 8.03 21.98 32.76 30.26 12.39
## 59 59 8.34 24.34 32.48 29.83 11.56
## 60 60 16.01 24.39 32.03 30.80 13.45
## 61 61 12.70 15.85 29.46 29.83 12.79
## 62 62 11.22 21.94 31.81 30.04 11.78
## 63 63 8.90 20.36 28.19 30.03 11.52
## 64 64 7.05 21.72 26.69 30.42 12.57
## 65 65 7.40 20.23 30.61 30.40 11.67
## 66 66 9.42 19.98 27.02 30.08 10.66
## 67 67 11.41 14.34 25.38 29.58 10.94
## 68 68 12.40 22.14 26.56 29.21 11.41
## 69 69 12.23 19.08 27.22 29.85 10.76
## 70 70 10.55 21.93 29.84 31.03 12.50
## 71 71 10.30 21.67 28.22 30.86 14.57
## 72 72 8.79 20.44 30.01 30.60 11.37
## 73 73 11.18 16.16 28.91 30.28 11.69
## 74 74 8.22 14.70 34.71 29.84 14.12
## 75 75 8.52 18.88 27.75 30.44 12.59
## 76 76 10.44 20.09 30.02 30.14 14.00
## 77 77 12.92 16.21 28.81 29.93 12.60
## 78 78 8.00 19.14 29.43 29.33 11.65
## 79 79 12.34 19.53 30.22 29.59 12.89
## 80 80 10.31 21.28 27.73 30.19 12.17
## 81 81 8.76 20.63 31.98 30.57 10.99
## 82 82 10.72 23.73 28.47 29.73 11.85
## 83 83 11.96 22.94 31.37 30.75 13.55
## 84 84 9.88 21.02 30.50 30.10 10.65
## 85 85 8.43 14.87 28.55 30.31 12.42
## 86 86 8.93 20.78 30.95 29.75 13.86
## 87 87 11.45 21.89 33.17 30.39 11.81
## 88 88 6.58 21.63 31.25 30.05 14.69
## 89 89 12.23 20.96 33.82 29.11 12.42
## 90 90 6.90 20.60 29.75 29.68 11.21
## 91 91 9.31 18.22 26.40 29.34 13.10
## 92 92 9.77 20.96 31.05 30.13 13.17
## 93 93 9.34 21.25 31.77 30.62 13.78
## 94 94 10.00 22.22 34.16 30.33 12.19
## 95 95 8.76 22.24 28.76 29.80 11.63
## 96 96 9.95 20.75 30.01 30.02 9.24
## 97 97 13.82 21.07 30.14 29.97 12.66
## 98 98 11.34 17.53 29.04 29.54 12.41
## 99 99 12.86 17.74 29.26 29.74 11.81
## 100 100 11.58 18.90 29.40 30.01 11.59

También pueden usarse data que el R contiene, por ejemplo el paquete MASS contiene el dataset “anorexia”
con todos los datos tomados para el estudio. Este estudio contempla la data de contiene los pesos previos y
posteriores al periodo de estudio de mujeres jóvenes con anorexia, son 72 pacientes que recibieron 3 tipos de
tratamiento: Cont (control), CBT (Tratamiento cognitivo conductual) y FT (Tratamiento familiar)

library(MASS) # "llamamos" a la libreria MASS


data(anorexia) # buscamos la data
summary(anorexia) # pedimos el resumen de la data
## Treat Prewt Postwt
## CBT :29 Min. :70.00 Min. : 71.30
## Cont:26 1st Qu.:79.60 1st Qu.: 79.33
## FT :17 Median :82.30 Median : 84.05
## Mean :82.41 Mean : 85.17
## 3rd Qu.:86.00 3rd Qu.: 91.55
## Max. :94.90 Max. :103.60

Objetos
El R es un lenguaje orientado a objetos: variables, matrices, funciones, etc. que son almacenados en la
memoria activa de la computadora en forma de objetos.

Variables en R
Una variable es un objeto que puede cambiar de valor, R nos permite crear variables, asignándoles valores a
nombres.

En R usamos “<-” o “=” para hacer asignaciones. Por ejemplo, podemos asignar el valor 3 a la variable x

x <- 3 # almacena el valor de 3 en x


x # digite el nombre de la variable para ver su contenido

## [1] 3

El digito 1 entre corchetes indica que el contenido exhibido se inicia con el primer elemento de x.

Las variables también pueden crearse mediante funciones aritmeticas.

y <- sqrt(3) # almacena la raiz cuadrada en x


y # digite el nombre de la variable para ver su contenido

## [1] 1.732051

Vectores en R
Un vector es la estructura de datos más sencilla en R . Un vector es una colección de uno o más datos del
mismo tipo.

Para crear un vector en R , existen varias formas:

Usando la función de concatenación “c()” para hacer una lista ordenada de números o cadena de texto, como
sigue

#crearemos un vector numérico al que nombraremos VECT1


VECT1 <- c( 0.3, 1.8, -5.4, 0, 2.9, -3.5 )
VECT1

## [1] 0.3 1.8 -5.4 0.0 2.9 -3.5


#crearemos un vector de cadena de texto al que nombraremos VECT2
VECT2 <- c( "amarillo", "azul", "rojo", "verde", "blanco" )
VECT2

## [1] "amarillo" "azul" "rojo" "verde" "blanco"

#Si deseamos agregar un elemento a un vector ya existente


VECT3<- c( 1,3,5,7 )
VECT3<- c( VECT3,9 )
VECT3

## [1] 1 3 5 7 9

#Si deseamos crear vectores que son combinación de otros vectores


VECT4<- c( VECT1,VECT3 )
VECT4

## [1] 0.3 1.8 -5.4 0.0 2.9 -3.5 1.0 3.0 5.0 7.0 9.0

También podemos usar el operador dos puntos “:” para hacer una secuencia de enteros, como sigue:

#Creamos unsa secuencia del -2 al 5


VECT5 <- -2:5
VECT5

## [1] -2 -1 0 1 2 3 4 5

#Creamos unsa secuencia del 5 al -2


VECT6 <- 5:-2
VECT6

## [1] 5 4 3 2 1 0 -1 -2

También podemos usar la función de secuencia “seq()”, damos un valor inicial y damos un valor final y un
valor de incremento, como sigue

VECT7 <- seq( -3, 3, by=0.2 )


VECT7

## [1] -3.0 -2.8 -2.6 -2.4 -2.2 -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2
## [16] 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8
## [31] 3.0

Note que R muestra el vector en varias filas, y que al inicio de cada fila da la posición en el vector del primer
elemento de la fila.

También podemos usar la función replica “rep()” para obtener un vector cuyos elementos son todos iguales,es
decir obtener 5 veces el valor 1
VECT8 <- rep(1,5)
VECT8

## [1] 1 1 1 1 1

También podemos concatenar dos o mas vectores a un gran vector,

VECT9 <- c( rep(1,3), 2:6, c(7,8,9,10) )


VECT9

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

También podemos tomar una de las columnas de una tabla y hacerla un vector, por ejemplo usaremos la data
set iris acerca de las longitudes de sépalos que existe por default en R .

data("iris")
iris
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica

Tomaremos la columna “Sepal.Length”

VECT10 <-iris$ Sepal.Length


VECT10
## [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
## [19] 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.0 5.0 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.0
## [37] 5.5 4.9 4.4 5.1 5.0 4.5 4.4 5.0 5.1 4.8 5.1 4.6 5.3 5.0 7.0 6.4 6.9 5.5
## [55] 6.5 5.7 6.3 4.9 6.6 5.2 5.0 5.9 6.0 6.1 5.6 6.7 5.6 5.8 6.2 5.6 5.9 6.1
## [73] 6.3 6.1 6.4 6.6 6.8 6.7 6.0 5.7 5.5 5.5 5.8 6.0 5.4 6.0 6.7 6.3 5.6 5.5
## [91] 5.5 6.1 5.8 5.0 5.6 5.7 5.7 6.2 5.1 5.7 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3
## [109] 6.7 7.2 6.5 6.4 6.8 5.7 5.8 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2
## [127] 6.2 6.1 6.4 7.2 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
## [145] 6.7 6.7 6.3 6.5 6.2 5.9

Si deseamos conocer cuantos elementos tiene el vector, entonces usamos la funciónn length.

length(VECT10)

## [1] 150

Si deseamos tener una referencia de un elemento en el vector, usamos los corchetes,por ejemplo el quinto
elemento del vector VECT

VECT10[3]

## [1] 4.7

Si deseamos tener una referencia de un subconjunto consecutivo del vector, por ejemplo del elemento 2 al
elemento 7

VECT10[2:7]

## [1] 4.9 4.7 4.6 5.0 5.4 4.6

Operaciones Aritméticas y Funciones en R


R también se puede utilizar para realizar operaciones aritméticas

Por ejemplo queremos obtener el resultado siguiente

2
1 + (2 × 4) − (6 ÷ 3)  + 2

En R se colocaría de la siguiente manera:

1+2*4-6/3+2**2 # potencias son indicadas por ** o ^

## [1] 11

También es posible hacer operaciones aritmética de los vectores:

VECT10*2 # Operación aritmética a un vector


## [1] 10.2 9.8 9.4 9.2 10.0 10.8 9.2 10.0 8.8 9.8 10.8 9.6 9.6 8.6 11.6
## [16] 11.4 10.8 10.2 11.4 10.2 10.8 10.2 9.2 10.2 9.6 10.0 10.0 10.4 10.4 9.4
## [31] 9.6 10.8 10.4 11.0 9.8 10.0 11.0 9.8 8.8 10.2 10.0 9.0 8.8 10.0 10.2
## [46] 9.6 10.2 9.2 10.6 10.0 14.0 12.8 13.8 11.0 13.0 11.4 12.6 9.8 13.2 10.4
## [61] 10.0 11.8 12.0 12.2 11.2 13.4 11.2 11.6 12.4 11.2 11.8 12.2 12.6 12.2 12.8
## [76] 13.2 13.6 13.4 12.0 11.4 11.0 11.0 11.6 12.0 10.8 12.0 13.4 12.6 11.2 11.0
## [91] 11.0 12.2 11.6 10.0 11.2 11.4 11.4 12.4 10.2 11.4 12.6 11.6 14.2 12.6 13.0
## [106] 15.2 9.8 14.6 13.4 14.4 13.0 12.8 13.6 11.4 11.6 12.8 13.0 15.4 15.4 12.0
## [121] 13.8 11.2 15.4 12.6 13.4 14.4 12.4 12.2 12.8 14.4 14.8 15.8 12.8 12.6 12.2
## [136] 15.4 12.6 12.8 12.0 13.8 13.4 13.8 11.6 13.6 13.4 13.4 12.6 13.0 12.4 11.8

R también tiene funciones disponibles, tanto las funciones matemáticas simples, las funciones especiales,
como las funciones útiles en estadística, a continuación una lista de algunas de las funciones:

sum() suma
prod() producto
sqrt() raiz cuadrada
abs() valor absoluto (positivo)
sin() cos() tan() funciones trigonométricas
exp() log() exponencial y logaritmo natural
log10() logaritmo base-10
mean() promedio
var() o cov() varianza o matriz varianza- covarianza
cor() matriz de correlación

Matrices en R
Creamos matrices en R con la función matrix(). La función matrix() acepta dos argumentos, nrow y ncol. Con
ellos especificamos el número de filas y columnas que tendrá nuestra matriz.

M1<- matrix(1:8,2)
M2<- matrix (VECT5,2) # de un vector númerico ya definido
M1

## [,1] [,2] [,3] [,4]


## [1,] 1 3 5 7
## [2,] 2 4 6 8

M2

## [,1] [,2] [,3] [,4]


## [1,] -2 0 2 4
## [2,] -1 1 3 5

Otro procedimiento para crear matrices es la unión vectores con las siguientes funciones:

cbind() para unir vectores, usando cada uno como una columna.
rbind() para unir vectores, usando cada uno como una fila.
vector_1 <- 1:4
vector_2 <- 5:8
vector_3 <- 9:12
vector_4 <- 13:16
M3<-rbind(vector_1, vector_2, vector_3, vector_4)
M3

## [,1] [,2] [,3] [,4]


## vector_1 1 2 3 4
## vector_2 5 6 7 8
## vector_3 9 10 11 12
## vector_4 13 14 15 16

M4<-cbind(vector_1, vector_2, vector_3, vector_4)


M4

## vector_1 vector_2 vector_3 vector_4


## [1,] 1 5 9 13
## [2,] 2 6 10 14
## [3,] 3 7 11 15
## [4,] 4 8 12 16

A continuación se muestras diferentes operaciones con matrices

#Transpuesta de una matriz - con M1


t(M1)

## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 5 6
## [4,] 7 8

#Suma y resta de matrices - con M1 y M2


M1+M2

## [,1] [,2] [,3] [,4]


## [1,] -1 3 7 11
## [2,] 1 5 9 13

M1-M2

## [,1] [,2] [,3] [,4]


## [1,] 3 3 3 3
## [2,] 3 3 3 3

#Multiplicación de matrices - con M1 y M3


M1%*%M3
## [,1] [,2] [,3] [,4]
## [1,] 152 168 184 200
## [2,] 180 200 220 240

#Determinante de una matriz cuadrada - con M3


M5<-matrix(c(1,2,3,4),nrow=2)
det(M5)

## [1] -2

#La inversa de una matriz cuadrada - con M3


solve(M5)

## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5

Graficas en R
En R , se usan muchas formas, la función barplot() es usada para gráfico de barras por ejemplo,

S1 <- c(21,17,15)
S2 <- c(11,29,27)
S3 <- c(13,20,26)
S4 <- c(26,18,22)
S5 <- c(18,20,17)
tabla<-matrix(c(S1,S2,S3,S4,S5),3,5)
View(tabla)
Medio <- c("Aplicativo","CentralTelefonica","Presencial")
Sucursal <- c("Sucursal 1","Sucursal 2","Sucursal 3","Sucursal 4","Sucursal 5")
dimnames(tabla) <-list(Medio = Medio,Sucursal = Sucursal)
# Tabla de contingencia de frecuencias relativas
frec<-prop.table(tabla)
dimnames(frec) <-list(Medio = Medio,Sucursal = Sucursal)
#Gráfico
barplot(frec*100,main="Frequencia relativa (%)",ylim=c(0,15),xlab ="Sucursal",ylab="Frecuenci
a",col=rainbow(3),beside=TRUE,legend.text = TRUE)
Distribuciones con R

ó
Distribuci n H ipergeom trica é

X ∼ H (N , M , n)

M N −M
( )( )
x n−x
f (x) =  ; x = 0, 1, . . . , n;
N
( )
n

dhyper(x, m, n, k, log = FALSE): Devuelve resultados de la función de densidad.


phyper(q, m, n, k, lower.tail = TRUE, log.p = FALSE): Devuelve resultados de la función de di
stribución acumulada.
qhyper(p, m, n, k, lower.tail = TRUE, log.p = FALSE): Devuelve resultados de los cuantiles de
la Hipergeométrica.
rhyper(nn, m, n, k): Devuelve un vector de valores de la Hipergeométrica aleatorios.

Ejemplo:

De un grupo de 10 estudiantes de arquitectura, se eligen 3 aleatoriamente con el fin de contratarlos. ¿Cuál es


la probabilidad de que entre los 3 seleccionados, estén los 2 mejores del grupo de 10?

· N = 10. Número total de arquitectos. · n = 3. Muestra aleatoria de la población total de arquitectos (10
arquitectos). · r = 2. Conjunto de 2 arquitectos estén los 2 mejores.

Para resolver este apartado, necesitamos resolver: P( X = 2), por lo tanto, sólo necesitamos el valor que toma
X en el punto 2 de la función de densidad:
dhyper(2,3,10-3,2)

## [1] 0.06666667

ó
Distribuci n Binomial

X ∼ B(n, p)

n x (n−x)
f (x) = ( )p (1 − p)  ; x = 0, 1, . . . , n;
x

dbinom(x, size, prob, log = FALSE): Devuelve resultados de la función de densidad.


dbinom(q, size, prob, lower.tail = TRUE, log.p = FALSE): Devuelve resultados de la función de
distribución acumulada.
qbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE): Regresa el valor hasta donde la CDF
tiene cierta probabilidad.
rbinom(n,size,prob): Genera n numeros aleatorios distribuidos binomialmente.

Ejemplo:

Tenemos 100 preguntas de un examen de admisión, cada pregunta tiene 5 posibles respuestas y únicamente
una de ellas es correcta. Asumamos que el postulante necesita tener 70 preguntas correctas para ingresar a
la Universidad. Encontrar la probabilidad de tener 70 o más preguntas correctas si el estudiante resolverá el
examen de forma aleatoria.

total_preguntas<-100
x<- 70
p<-0.2 # esto dado que de las 5 opciones solo una es correcta (1/5)
dbinom(x, size=total_preguntas, prob = p)

## [1] 4.292772e-27

Para saber la probabilidad de tener 70 o más respuestas correctas, calculamos primero la probabilidad
acumulada hasta x=70, luego hacemos p(x>70)=1−p(x<70)=1−F(70). Esto se calcula de la siguiente forma:

total_preguntas<-100
x<- 70
p<-0.2 # esto dado que de las 5 opciones solo una es correcta (1/5)
1-pbinom(x, size=total_preguntas, prob = p)

## [1] 0

ó
Distribusi n P oisson

X ∼ P (λ)
(−λ) x
e λ
f (x) =  ; x = 0, 1, . . .
x!

dpois(x, lambda, log = FALSE): devuelve el valor de la función de densidad de probabilidad de


Poisson.
ppois(q, lambda, lower.tail = TRUE, log.p = FALSE): devuelve el valor de la función de densid
ad acumulativa de Poisson.
qpois(p, lambda, lower.tail = TRUE, log.p = FALSE): devuelve el valor de la función de densid
ad acumulativa de Poisson inversa.
rpois(n, lambda): genera un vector de variables aleatorias distribuidas de Poisson.

Ejemplo:

En una bodega, se cree que en promedio se tiene 30 perdidas de productos por semana, asumiendo una
distribución poisson y que el intervalo de referencia es de una semana,¿QUé probabilidad hay de que en a la
siguiente semana se pierdan exactamente 20 productos en la bodega?

dpois(20, lambda = 30)

## [1] 0.01341115

¿QUé probabilidad hay de que en la siguiente semana se pierdan menos de 20 productos en la bodega?

ppois(19, lambda = 30)

## [1] 0.02187347

¿QUé probabilidad hay de que en la siguiente semana se pierdan más de 20 productos en la bodega?

1-ppois(20, lambda = 30)

## [1] 0.9647154

ó
Distribuci n N ormal

2
X ∼ N (μ, σ )

2
(x−μ)
1 −
f (x) =  e 2σ 2  ; x = 0, 1, . . .
−−−
√2πσ

dnorm(x,mean,sd,log = FALSE): Función de densidad de probabilidad


pnorm(q,mean,sd,lower.tail = TRUE,log.p = FALSE): Función de distribución acumulada
qnorm(p,mean,sd,lower.tail = TRUE, log.p = FALSE): Función cuantil de la distribución normal
rnorm((n,mean,sd)): Generación de números pseudoaleatorios normales
par(mfrow = c(1, 2))

# Rejilla de valores para el eje X


x <- seq(-3, 3, 0.1)
# Media 0, desviación típica 1
plot(x, dnorm(x, mean = 0, sd = 1), type = "l",
ylim = c(0, 0.45), ylab = "", lwd = 2, col = "blue")

Ejemplo:

En una planta de producción de de juguetes educativo, se ha comprado un maquina selladora para el


producto “lupasKids”, esta maquina sella ambas partes de la lupa con el vidrio. El proceso sigue una
distribución normal y se sabe que la media del alto de cada lupa es de 20 cm y la desviación es 0.1 cm.Se
quiere calcular la probabilidad de que una lupa mida menos de 18.8 cm

mu <- 20
sigma <- 0.1

x <- seq(-3, 3, length = 100) * sigma + mu


f <- dnorm(x, mu, sigma) #función de densidad

pnorm(20.2, mu, sigma) #0.9772499

## [1] 0.9772499
#Gráfico
lb <- min(x) # Límite inferior
ub <- 20.2 # Límite superior

x2 <- seq(min(x), ub, length = 100)


y <- dnorm(x2, mu, sigma) # Densidad

plot(x, f, type = "l", lwd = 2, col = "blue", ylab = "", xlab = "Altura")
abline(v = ub)

polygon(c(lb, x2, ub), c(0, y, 0), col = rgb(0, 0, 1, alpha = 0.5))


text(995, 0.01, "97.72%")

ó
Distribuci n chi2

2
X ∼ χ (n)

−(n/2)
2 (n/2−1) −(x/2)
f (x) =  x  e  ; x >= 0,
(n/2)
Γ

caso contrario 0 para x < 0

dchisq(x, df, ncp = 0, log = FALSE): Función de densidad de probabilidad


pchisq(q, df, ncp = 0, lower.tail = TRUE, log.p = FALSE): Función de distribución acumulada
qchisq(p, df, ncp = 0, lower.tail = TRUE, log.p = FALSE): Función cuantil de la distribución
rchisq(n, df, ncp = 0): Generación de números pseudoaleatorios
#creación de la curva de densidad
curve(dchisq (x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#crear vector de valores x


x_vector <- seq ( 0, 10 )

#crear vector de valores de densidad chi-cuadrado


p_vector <- dchisq (x_vector, df = 10)

# rellene una parte de la gráfica de densidad de 0 a 10


polygon(c (x_vector, rev (x_vector)), c (p_vector, rep (0, length (p_vector))),
col = "red",borde = NA)

ó
Distribuci n t − student

X ∼ t(ν )

2
Γ[(ν + 1)/2] x −(ν+1)/2
f (x) =  (1 + )
− −−−
Γ(ν /2)√ r(π) r
dt(x, df, ncp, log = FALSE):Función de densidad de probabilidad
pt(q, df, ncp, lower.tail = TRUE, log.p = FALSE):Función de distribución acumulada
qt(p, df, ncp, lower.tail = TRUE, log.p = FALSE): Función cuantil de la distribución
rt(n, df. ncp): Generación de números pseudoaleatorios

ó
Distribuci n F isher

F ∼ F (r1, r2)

Γ(ν1 + ν2 /2) ν1 ν1 x
ν 1 /2 ν 1 /2−1 −(ν 1 +ν 2 )/2
f (x) =  ( )  x  (1 + )
Γ(ν1 /2)Γ(ν2 /2) ν2 ν2

df(x, df1, df2, ncp, log = FALSE):Función de densidad de probabilidad


pf(q, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE):Función de distribución acumulada
qf(p, df1, df2, ncp, lower.tail = TRUE, log.p = FALSE): Función cuantil de la distribución
rf(n, df1, df2, ncp): Generación de números pseudoaleatorios

Fin ***

También podría gustarte