Ejercicios en R

Les mostraremos ejercicios simples en R para empezar en este lenguaje

\(\bullet\) Cómo escribir un vector

\(\bullet\) Operaciones con un vector

\(\bullet\) Función class

\(\bullet\) Crear una matriz

\(\bullet\) Dimenciones de una matriz

\(\bullet\) Cómo sumar matrices

\(\bullet\) Crear un dataframe

\(\bullet\) Eliminar una colunma a un dataframe

\(\bullet\) Adicionar una colunma a un dataframe

\(\bullet\) Eliminar una fila a un dataframe

\(\bullet\) Adicionar una fila a un dataframe

\(\bullet\) Cómo generar numeros al azar

\(\bullet\) Histograma

\(\bullet\) Boxplot

\(\bullet\) Diagrama de dispersión

\(\bullet\) Como importar un archivo de texto

\(\bullet\) Como importar un archivo Excel

\(\bullet\) Instalación de un paquete (libreria)

Vectores

Existen tres tipos de vectores: Numérico, Texto y Lógico.

Con la función \(c()\) se puede crear el vector de la siguiente forma:

# Vector numérico
vector_n <- c(1,2,3,4,5,6,7,8,9,0)
vector_n
##  [1] 1 2 3 4 5 6 7 8 9 0
# Vector de texto
vector_t <- c("Bienvenidos","Bienvenidas","Curso R")
vector_t
## [1] "Bienvenidos" "Bienvenidas" "Curso R"
# Vector lógico
vector_l <- c(TRUE,FALSE,FALSE,TRUE)
vector_l_2 <- c(T,F,T,F) # Otra manera valida de escribir False y True
vector_l
## [1]  TRUE FALSE FALSE  TRUE
vector_l_2
## [1]  TRUE FALSE  TRUE FALSE

Operaciones con vectores

# Largo de un vector
vector_n <- c(1:1000)
length(vector_n)
## [1] 1000
# Suma de vectores
vector_a <- c(1:10)
vector_b <- c(11:20)
vector_a + vector_b
##  [1] 12 14 16 18 20 22 24 26 28 30
# Resta de vectores
vector_a <- c(10,5,48,50,23,69,78,41,2,56)
vector_b <- c(25:34)
vector_b - vector_a
##  [1]  15  21 -21 -22   6 -39 -47  -9  31 -22
# Multiplicación de vectores
vector_a <- c(1:10)
vector_b <- c(11:20)
vector_a * vector_b
##  [1]  11  24  39  56  75  96 119 144 171 200
# Divición de vectores
vector_a <- c(1:10)
vector_b <- c(11:20)
vector_a / vector_b
##  [1] 0.09090909 0.16666667 0.23076923 0.28571429 0.33333333 0.37500000
##  [7] 0.41176471 0.44444444 0.47368421 0.50000000

Función class

Si se quiere saber la clase de objeto que se está tratando, se puede utilizar \(class()\)

xx <- c(1:2)
xy <- c(1.2,2.1)
yy <- c("a","b")
class(xx)
## [1] "integer"
class(xy)
## [1] "numeric"
class(yy)
## [1] "character"

Para más información de la función class()

Creación de Matrices

La función \(matrix()\) es la que permite crear matrices, está tiene 3 argumentos: \(ncol\) la cual determina el número de columnas, \(nrow\) que determina el número de filas, y \(data\) el cual contiene el vector.

# Matriz sin especificar colunmas o filas
matrix(1:9)
##       [,1]
##  [1,]    1
##  [2,]    2
##  [3,]    3
##  [4,]    4
##  [5,]    5
##  [6,]    6
##  [7,]    7
##  [8,]    8
##  [9,]    9
# Matriz 3x3
matrix(1:9,ncol = 3,nrow = 3)
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9

A las matrices también se les puede sumar, restar, multiplicar, dividir y elevar a una potencia.

# Suma a los vectores que contiene la matriz
matriz_s <- matrix(1:9,ncol = 3,nrow = 3)
matriz_s + 1
##      [,1] [,2] [,3]
## [1,]    2    5    8
## [2,]    3    6    9
## [3,]    4    7   10
# Resta a los vectores que contiene la matriz
matriz_s <- matrix(1:9,ncol = 3,nrow = 3)
matriz_s - 1
##      [,1] [,2] [,3]
## [1,]    0    3    6
## [2,]    1    4    7
## [3,]    2    5    8
# Multiplicación a los vectores que contiene la matriz
matriz_s <- matrix(1:9,ncol = 3,nrow = 3)
matriz_s * 2
##      [,1] [,2] [,3]
## [1,]    2    8   14
## [2,]    4   10   16
## [3,]    6   12   18
# Divición a los vectores que contiene la matriz
matriz_s <- matrix(1:9,ncol = 3,nrow = 3)
matriz_s / 2
##      [,1] [,2] [,3]
## [1,]  0.5  2.0  3.5
## [2,]  1.0  2.5  4.0
## [3,]  1.5  3.0  4.5
# Elevar a una potencia a los vectores que contiene la matriz
matriz_s <- matrix(1:9,ncol = 3,nrow = 3)
matriz_s ** 2
##      [,1] [,2] [,3]
## [1,]    1   16   49
## [2,]    4   25   64
## [3,]    9   36   81
matriz_s ^ 2 # Otra forma valida de elevar
##      [,1] [,2] [,3]
## [1,]    1   16   49
## [2,]    4   25   64
## [3,]    9   36   81

Para más información de la función matrix()

Dimenciones de una matriz

Con las función \(dim()\) se puede conocer que dimención tiene una matriz, ya sea 2x2, 3x3, 4x4, etc.

dim(matriz_s)
## [1] 3 3

Suma entre Matrices

Esta operación se puede hacer entre dos matrices que tengan la misma dimención

# Matriz 4x3 
matriz_A <- matrix(1:12,ncol = 4,nrow = 3)
matriz_A
##      [,1] [,2] [,3] [,4]
## [1,]    1    4    7   10
## [2,]    2    5    8   11
## [3,]    3    6    9   12
# Matriz 4x3 
matriz_B <- matrix(25:36,ncol = 4,nrow = 3)
matriz_B
##      [,1] [,2] [,3] [,4]
## [1,]   25   28   31   34
## [2,]   26   29   32   35
## [3,]   27   30   33   36
# Suma entre matrices
matriz_A + matriz_B
##      [,1] [,2] [,3] [,4]
## [1,]   26   32   38   44
## [2,]   28   34   40   46
## [3,]   30   36   42   48

Como se puede evidenciar se sumaron los vectores de cada posición.

Dataframe

Los data frames son estructuras de datos de dos dimensiones (rectangulares) que pueden contener datos de diferentes tipos, por lo tanto, son heterogéneas. Esta estructura de datos es la más usada para realizar análisis de datos y seguro te resultará familiar si has trabajado con otros paquetes estadísticos.

Con la función \(data.frame()\) se creará el dataframe, cabe resaltar que la composición está dada por vectores del mismo tamaño

# Se recomienda no utilizar carácteres especiales como las tíldes
Numero <- c(1:5) 
Letra <- c("a","b","c","d","e")
Logico <- c(T,F,T,T,F)
Sexo <- c("M", "F", "M","F","F")

dataf <- data.frame(Numero,Letra,Logico,Sexo)
dataf
##   Numero Letra Logico Sexo
## 1      1     a   TRUE    M
## 2      2     b  FALSE    F
## 3      3     c   TRUE    M
## 4      4     d   TRUE    F
## 5      5     e  FALSE    F

Para más información de la función data.frame()

Eliminar una columna de un dataframe

Para poder eliminar una columna simplemente se llamará el dataframe, se seleccionará la opción de columna y se restara el número de columna que se desea eliminar.

dataf_e <- dataf[,-4]
dataf_e
##   Numero Letra Logico
## 1      1     a   TRUE
## 2      2     b  FALSE
## 3      3     c   TRUE
## 4      4     d   TRUE
## 5      5     e  FALSE

Adicionar colimna a un dataframe

Para adicionar una colunma se puede utilizar la función \(cbind\) de la siguiente forma:

# El vector a adicionar tiene que tener la misma longitud que la del dataframe
comida <- c("Arroz","Mango","Carne","Agua","Postre")
dataf_a <- cbind(dataf,comida)
dataf_a
##   Numero Letra Logico Sexo comida
## 1      1     a   TRUE    M  Arroz
## 2      2     b  FALSE    F  Mango
## 3      3     c   TRUE    M  Carne
## 4      4     d   TRUE    F   Agua
## 5      5     e  FALSE    F Postre

Elimina una fila de un dataframe

Para poder eliminar una fila simplemente se llamará el dataframe, se seleccionará la opción de columna y se restara el número de fila que se desea eliminar.

dataf_e <- dataf[-5,]
dataf_e
##   Numero Letra Logico Sexo
## 1      1     a   TRUE    M
## 2      2     b  FALSE    F
## 3      3     c   TRUE    M
## 4      4     d   TRUE    F

Adicionar una fila de un dataframe

Para adicionar una fila se puede utilizar la función \(rbind\) de la siguiente forma:

fila_n <- c(6,"f",T,"F")
dataf_a <- rbind(dataf,fila_n)
dataf_a
##   Numero Letra Logico Sexo
## 1      1     a   TRUE    M
## 2      2     b  FALSE    F
## 3      3     c   TRUE    M
## 4      4     d   TRUE    F
## 5      5     e  FALSE    F
## 6      6     f   TRUE    F

Generar números aleatorios

Con la función \(sample()\) se pueden generar números con distribución aleatoria. Se tienen 3 argumentos, \(x\) son es un vector de uno o más elementos entre los que elegir, o un número entero positivo, \(size\) es un número entero positivo que dará el tamaño de la muestra, y \(replace\) tiene dos estados, F por defecto y T se especifica cuando se tiene un \(x\) menor a \(size\), para que los números se puedan repetir.

sample(x=1:10,size=100,replace = T)
##   [1]  1  1  5  4  1  3  6  6  7  9  5  8  6  4  1  2  2  8  6  3  4  5 10  9  6
##  [26]  7  1  2  3  1  1  2  9  4  9  6 10  2  7  6  2 10  3  3  2  2  2  6 10  8
##  [51]  9  4  5  4  8  8  1  8  3  1  2  9  5  1  7  4  5  1  3  3  1  3  6  4  9
##  [76]  4  7  6 10  4  1  4  7  9  7  2  6  4 10  7  9  8 10  9  9  5  7  5  6  8

Para más información de sample()

Histograma

Un histograma es la representación gráfica en forma de barras, que simboliza la distribución de un conjunto de datos. Sirven para obtener una “primera vista” general, o panorama, de la distribución de la población, o de la muestra, respecto a una característica, cuantitativa y continua.

Con la función \(hist()\) se puede ver el histograma de los datos

datos <- rnorm(100, mean = 50, sd = 10) # forma de generar datos con distribución normal
hist(datos, main = "Histograma", ylab="Frecuencia", xlab = "Datos", col="yellow")

Para más información de la función hist()

Boxplot

También conocido como diagrama de caja. Es un método estandarizado para representar gráficamente una serie de datos numéricos a través de sus cuartiles. De esta manera, el diagrama de caja muestra a simple vista la mediana y los cuartiles de los datos, pudiendo también representar los valores atípicos de estos.

Los datos representados en el boxplot son:

\(\bullet\) Rango (sin datos atípicos)

\(\bullet\) Datos atípicos

\(\bullet\) Rango intercuartil (también conocido como ICR)

\(\bullet\) Cuartiles (denotados como Q1, Q2 y Q3)

\(\bullet\) Mediana (Q2)

\(\bullet\) Mínimo y máximo.

Con las función \(boxplot()\) se puede generar el diagrama

boxplot(datos,main = "Boxplot",col = "cyan")

Para más información de la función boxplot()

Diagrama de dispersión

El diagrama de dispersión permite estudiar las relaciones entre dos conjuntos asociados de datos que aparecen en pares (por ejemplo, (x,y), uno de cada conjunto). El diagrama muestra estos pares como una nube de puntos.

Recomendación: Revisar correlación de Pearson

Con la función \(plot()\) se puede generar el gráfico

x = sample(1:50,50,replace = T)
y = c(1:50)
plot(x=x,y=y,main = "Diagrama de dispersión",pch=16,cex=0.5)

Para más infrmación de la función plot()

Importar archivo de texto

Para importar un archivo .txt o csv nos dirigimos a la parte superior en la sección Environment

Environment

Seleccionaremos la opción import Dataset y From Text (base)

Dataset

Buscaremos la ubicación del archivo

Environment

Al darle Open nos surgirá la siguiente ventana

Dataset

Le damos click en importar y ya tendremos nuestro archivo dentro de Rstudio

Dataspliplot <- read.csv("D:/Kevin/Trabajos/Curso R/Dataspliplot.txt", sep="")
#View(Dataspliplot)
head(Dataspliplot)
##   plot fertilizer variety mass
## 1    7    control       A 11.6
## 2    7    control       B  7.7
## 3    7    control       C 12.0
## 4    7    control       D 14.0
## 5    5    control       A  8.9
## 6    5    control       B  9.5

Tenemos la función \(View()\) la cuál permite visualizar todos los datos que estan dentro del archivo en una ventana nueva dentro de Rstudio.

Instalación de un paquete en Rstudio

Para la instalación de un paquete se tienen dos opciones:

  1. Desde el chunk con la función \(install.packages()\):
# Paquete para importar archivos de Excel
# install.packages("readxl") 

En la consola les aparecerá lo siguiente

Console

  1. Desde Install Packages

Seleccionames en el menu superior la opción Tools e Install Packages

Tools

Al seleccionar la opción se desplegará la siguiente ventana

Install

Daremos instalar y el paquete estará instalado

Importar archivo excel

Para importar el proceso es muy similar al de importar un archivo de texto con la diferencia que aquí ya debemos tener instalado el paquete readxl

Tools

Al seleccionar en la opción From Excel se despliega la ventana de busqueda del archivo

Ventana Import

Seleccionamos la opción de la esquina superior derecha Browse

BuscarE

Cuando se le seleccione abrir (\(Open\)) saldrá de la siguiente forma

Import Excel

Ya estando aquí hay dos opciones, una es seleccionar importar y el excel ya estará dentro de Rstudio y la otra es copiar el código que se encuentra dentro de Code Preview mostrado a continuación

library(readxl)
DatosLattice <- read_excel("D:/Kevin/Trabajos/Curso R/DatosLattice.xlsx")
head(DatosLattice,n=10)
## # A tibble: 10 x 4
##      rep block  trat yield
##    <dbl> <dbl> <dbl> <dbl>
##  1     1     1     1  2.2 
##  2     1     1     2  1.84
##  3     1     1     3  2.18
##  4     1     2     1  2.05
##  5     1     2     2  0.85
##  6     1     2     3  1.86
##  7     1     3     1  0.73
##  8     1     3     2  1.6 
##  9     1     3     3  1.76
## 10     2     4     1  1.71