Clase 3; 23/8 Vectores

El operador “c()” permite juntar datos y formar un vector, la estrucutra mas pequeña es un vector

#c(5,7,8,9)
Vector_numerico<-c(5,7,8,9,5,4.5,9.6)
Vector_numerico
## [1] 5.0 7.0 8.0 9.0 5.0 4.5 9.6

Practicas con corchetes”[]”

el comando length nos da el largo de un vector

Vector_numerico[6]
## [1] 4.5
#utilizando length

length(Vector_numerico)
## [1] 7
# por medio del comando vemos que eñ vector solo contiene 7 datos

# Selecciona el primero y el ultimo dato del vector

Vector_numerico[c(1,7)]
## [1] 5.0 9.6
# Se hace el siguiente codigo si el vector es muy extenso

Vector_numerico[c(1,length(Vector_numerico))]
## [1] 5.0 9.6

utilizando el operador “:” como ejmeplo 1:20 nos genera numeros de 1 en 1 hasta el 20

# Ejemplo :

1:20
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
# Solo los primero 3 datos del vector

Vector_numerico[1:3]
## [1] 5 7 8
# Como calcular los ultimos 3 datos

(length(Vector_numerico)-3+1):length(Vector_numerico)
## [1] 5 6 7
# El anterior codigo se muestra solo los datos de los posicionamiento ya que no sabemos el total de numeros que exista en el vector, ahora se le resta siempre la cantidad que queramos saber los ultimos datos mas 1 ya que este se toma en cuenta el mismo

# Ya poniendo en practica seria:

n<-length(Vector_numerico)
Vector_numerico[(n-3+1):n]
## [1] 5.0 4.5 9.6
# Y de este modo obtenemos los ultimo 3 dijitos

# Muestar los ultimos 4 dijitos

Vector_numerico[(n-4+1):n]
## [1] 9.0 5.0 4.5 9.6
# Ahora los primeros 5 dijitos

Vector_numerico[1:5]
## [1] 5 7 8 9 5

Ahora utlizando los operadores relacionales “<(menor), <=(menor igual), >(mayor), >=(mayor igual), ==(exactamente), !=(No es igual), & (Y), 1 (O)”.

Los resultados que obtremos seran “TRUE” si se cumple la operacion y “FALSE” si no se cumple la operacion. la haremos los siguientes ejercicios

# Todos los datos mayores que 8

Vector_numerico>=8
## [1] FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE
condicion<-Vector_numerico>=8

# Ahora solo muestra aquellos datos dentro del vector que cumpla con la condicion

Vector_numerico[condicion]
## [1] 8.0 9.0 9.6
# Valores que satisfagan restricciones en dos vias

# Ejemplo &

condicion_2<-Vector_numerico>=8 & Vector_numerico<9
Vector_numerico[condicion_2]
## [1] 8
condicion_3<-Vector_numerico>=5 & Vector_numerico<5.95
Vector_numerico[condicion_3]
## [1] 5 5
condicion_4<-(Vector_numerico>=5 & Vector_numerico<5.95) | Vector_numerico<5
Vector_numerico[condicion_4]
## [1] 5.0 5.0 4.5
Vector_numerico[2:5]
## [1] 7 8 9 5

Vectores vacios

Utilizaremos el operador “vector” para hacer vectores directamente solo nos pide dos argumentos, “mode” que es el tipo de datos que quisieramos y lenght que es largo de los datos a introducir.

Para que nos puede servir tener vectores que solo contengan 0?, R/Puede ser que quieras ingresar varios datos dentro de el vector

nuevo_vector_numerico<-vector(mode = "numeric", length = 10L)

# En la septima pocision quiero el valor de 10

nuevo_vector_numerico[7]<-15
nuevo_vector_numerico
##  [1]  0  0  0  0  0  0 15  0  0  0
# Se puede asignar o sacra los datos dentro del vector

nuevo_vector_numerico[3]<-6
nuevo_vector_numerico[3]->mi_variable

# Ejemplo con las notas, cambiar el 4.5 a 6

# Encontrando la posicion

otra_condicion<-Vector_numerico==5
otra_condicion
## [1]  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE
as.integer(otra_condicion)
## [1] 1 0 0 0 1 0 0
# Modifcar la quinta posicion

Vector_numerico[5]<-6
Vector_numerico
## [1] 5.0 7.0 8.0 9.0 6.0 4.5 9.6

Clase 4; 28/8 Matrices

Utilizando el operador “matrix” se haran matrices de los cuales los argumentos son, “data(tipo de dato), nrow(numero de filas), ncol(numero de columnas), byrow(indica si se quiere que se llenen por filas o columnas, por default se llenan por columnas), dimnames”

# no se coloca el ncol ya que esta asume que es una matriz cuadrada en dado caso no fuera asi si debemos de seleccionar la matriz de preferencia

matriz_numerica<-matrix(data = c(1,5,5,7,8,9,5,0,3), nrow = 3, byrow = TRUE)
matriz_numerica
##      [,1] [,2] [,3]
## [1,]    1    5    5
## [2,]    7    8    9
## [3,]    5    0    3
# Como seleccionamos que se llenera por filas primero se lleno la fila de 1,5,5 luego el 7,8,9 y por ultimo el 5,0,3.
# Recycle: si la matriz es cuadrado pero hemos seleccionado mas columnas rellena ese espacio con datos que ya se habian intorducido

matri<-matrix(data = c(1,5,5,7,8,9,5,0,3), nrow = 3, ncol = 4, byrow = TRUE)
matri
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    5    7
## [2,]    8    9    5    0
## [3,]    3    1    5    5
# Como seleccionamos que se llenara por filas primero se lleno 1,5,5,7 luego el 8,9,5,0 y por ultimo el 3.1,5,5 en este caso se añaden el 1,5,5

# Con este ejemplo mostramos el default aunteriormente mencionado, si no especificamos como se llena en "byrow"

matric<-matrix(data = c(1,5,5,7,8,9,5,0,3), nrow = 3, ncol = 3)
matric
##      [,1] [,2] [,3]
## [1,]    1    7    5
## [2,]    5    8    0
## [3,]    5    9    3

Matriz de caracteres

matriz_caracteres<-matrix(data = c("a", "b", "c", "d"), nrow = 2, byrow = TRUE)
matriz_caracteres
##      [,1] [,2]
## [1,] "a"  "b" 
## [2,] "c"  "d"
# Comando Class: Nos dice que tipo de datos son.

class(matriz_numerica)
## [1] "matrix" "array"
class(matriz_caracteres)
## [1] "matrix" "array"
# Nos dice que es de tipo matriz "array" no importa si es numerica y de craater no distingue

# Comando typeof: Nos dice que tipo de datos son en las matrices, double=numerico

typeof(matriz_numerica)
## [1] "double"
typeof(matriz_caracteres)
## [1] "character"

Estructuras Vacias de tipo numerico

otra_matriz_numerica<-matrix(data = 0, nrow = 4, ncol = 4)
otra_matriz_numerica
##      [,1] [,2] [,3] [,4]
## [1,]    0    0    0    0
## [2,]    0    0    0    0
## [3,]    0    0    0    0
## [4,]    0    0    0    0
otra_matriz_caracter<-matrix(data = "", nrow = 3, ncol = 4)
otra_matriz_caracter
##      [,1] [,2] [,3] [,4]
## [1,] ""   ""   ""   ""  
## [2,] ""   ""   ""   ""  
## [3,] ""   ""   ""   ""
typeof(otra_matriz_caracter)
## [1] "character"
typeof(otra_matriz_numerica)
## [1] "double"

Notacion de corchetes en matrices

matriz_numerica->matriz_numerica_1
matriz_numerica_1
##      [,1] [,2] [,3]
## [1,]    1    5    5
## [2,]    7    8    9
## [3,]    5    0    3
# Selecicona el valor 9 de la matriz

matriz_numerica[2,3]
## [1] 9
# Selecciona submatrices

# Selecicona una submatriz, [x:xx,:y:yy]: x=filas, y=columnas

matriz_numerica[1:2,1:2]
##      [,1] [,2]
## [1,]    1    5
## [2,]    7    8
matriz_numerica[1:3,1:3]
##      [,1] [,2] [,3]
## [1,]    1    5    5
## [2,]    7    8    9
## [3,]    5    0    3
# Selecicona una submatriz que contenga el 8,9,0,3

matriz_numerica[2:3,2:3]
##      [,1] [,2]
## [1,]    8    9
## [2,]    0    3
# Selecicona una submatriz que contenga el 1,5,5,3

# Primera forma: Quitar filas y columnas

matriz_numerica[-2,-2]
##      [,1] [,2]
## [1,]    1    5
## [2,]    5    3
# Segunda forma: Llamar elemntos individuales

matriz_numerica[c(1,3), c(1,3)]
##      [,1] [,2]
## [1,]    1    5
## [2,]    5    3

Eliminar filas o columnas

# Extraer fila 2, el argumento "-" sirve para quitar filas o columnas

matriz_numerica[2,]
## [1] 7 8 9
matriz_numerica[-c(1,3),]
## [1] 7 8 9
# Extraer columna 3, si solo pides 1 columna te lo dara solo en forma de una linea si pides mas de 1 si lo muestra en columna

matriz_numerica[,3]
## [1] 5 9 3
matriz_numerica[,2:3]
##      [,1] [,2]
## [1,]    5    5
## [2,]    8    9
## [3,]    0    3

Clase 5; 29/8 Matrices 2SP

matriz_num<-matrix(data = 1:25, nrow = 5, byrow = TRUE)
matriz_num
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
## [3,]   11   12   13   14   15
## [4,]   16   17   18   19   20
## [5,]   21   22   23   24   25

Trabsformas Datos

# Cambiar los datos de 13, 14, 18, 19 se conviertan en 10

matriz_num[3:4,3:4]<-10
matriz_num
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
## [3,]   11   12   10   10   15
## [4,]   16   17   10   10   20
## [5,]   21   22   23   24   25
# Cambiar los datos de 7, 9, 22, 24 se conviertan en 0

matriz_num[c(2,5),c(2,4)]
##      [,1] [,2]
## [1,]    7    9
## [2,]   22   24
matriz_num[c(2,5),c(2,4)]<-0

# Cambiar la submatriz 1,2,6,0 a la submatriz 10

para_reemplazar<-matriz_num[1:2,1:2]
para_reemplazar
##      [,1] [,2]
## [1,]    1    2
## [2,]    6    0
matriz_num[3:4,3:4]<-para_reemplazar

# Cambiar la submatriz 12,17,1,6 a 1,2,3,4

matriz_num[3:4,2:3]<-matrix(data = c(1,2,3,4), nrow = 2, byrow = TRUE)

# Cambiar fila o columna enteras: cambiar la fila 5 a 0

matriz_num[5,]
## [1] 21  0 23  0 25
matriz_num[5,]<-0

# Cambiar fila o columna enteras: cambiar la columna 3 a 0

matriz_num[,3]
## [1] 3 8 2 4 0
matriz_num[,3]<-0
matriz_num[,3]<-c(1,2,3,4,5)

Extraer submatrices

matriz_num[,3:5]->sub_matriz
sub_matriz
##      [,1] [,2] [,3]
## [1,]    1    4    5
## [2,]    2    0   10
## [3,]    3    2   15
## [4,]    4    0   20
## [5,]    5    0    0
# Encontrar el numero de filas

nrow(matriz_num)
## [1] 5
# Encontrar el numero de columnas

ncol(matriz_num)
## [1] 5
# La propiedad "dim nos dice las dimenciones de forma directa

dim(matriz_num)
## [1] 5 5
# La cantidad de datos en la matriz

length(matriz_num)
## [1] 25

Preliminares Listas

vector_numerico1<-1:20
matriz_numerica1<-matrix(data = 1:25, nrow = 5, byrow = TRUE)
vector_carcater1<-c("a", "b", "c")

Crear lista: La forma de crear una lista con los objetos que ya existen, se ytiliza el comando “list” y añadiendo las etiquetas “objeto_1, objeto_2” que ya existe o podemos crearlo

mi_lista<-list(objeto_1=vector_numerico1, objeto_2=vector_carcater1, objeto_3=matriz_numerica1)

otra_lista<-list(lista=mi_lista, escalar=50)

# Acceder a objetos dentro de listas

otra_lista$lista
## $objeto_1
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
## 
## $objeto_2
## [1] "a" "b" "c"
## 
## $objeto_3
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
## [3,]   11   12   13   14   15
## [4,]   16   17   18   19   20
## [5,]   21   22   23   24   25
otra_lista$lista$objeto_1
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
# Otra forma de acceder a objetos dentro de listas

otra_lista[[1]]
## $objeto_1
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
## 
## $objeto_2
## [1] "a" "b" "c"
## 
## $objeto_3
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
## [3,]   11   12   13   14   15
## [4,]   16   17   18   19   20
## [5,]   21   22   23   24   25
otra_lista[[1]][[2]]
## [1] "a" "b" "c"
otra_lista[[1]][[2]][[3]]
## [1] "c"
# Accedamos a la matriz

otra_lista[[1]][[3]]
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10
## [3,]   11   12   13   14   15
## [4,]   16   17   18   19   20
## [5,]   21   22   23   24   25
otra_lista[[1]][[3]][3:4,3:4]
##      [,1] [,2]
## [1,]   13   14
## [2,]   18   19

Clase 6; 30/8 Listas

Clase 7: 5/9 dplyr;df_1

DF 1 con dplyr: como filtrar y reordenar variables

installar gapminder

library(gapminder)
library(dplyr)

gapminder<-gapminder
print(gapminder)
## # A tibble: 1,704 × 6
##    country     continent  year lifeExp      pop gdpPercap
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl>
##  1 Afghanistan Asia       1952    28.8  8425333      779.
##  2 Afghanistan Asia       1957    30.3  9240934      821.
##  3 Afghanistan Asia       1962    32.0 10267083      853.
##  4 Afghanistan Asia       1967    34.0 11537966      836.
##  5 Afghanistan Asia       1972    36.1 13079460      740.
##  6 Afghanistan Asia       1977    38.4 14880372      786.
##  7 Afghanistan Asia       1982    39.9 12881816      978.
##  8 Afghanistan Asia       1987    40.8 13867957      852.
##  9 Afghanistan Asia       1992    41.7 16317921      649.
## 10 Afghanistan Asia       1997    41.8 22227415      635.
## # ℹ 1,694 more rows
# Exploracion de los datos

glimpse(gapminder)
## Rows: 1,704
## Columns: 6
## $ country   <fct> "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", …
## $ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, …
## $ year      <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992, 1997, …
## $ lifeExp   <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.854, 40.8…
## $ pop       <int> 8425333, 9240934, 10267083, 11537966, 13079460, 14880372, 12…
## $ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 786.1134, …
# Filtrar df segun una condicion numerica

gapminder %>% 
  filter(year == 1952)
# Filtrar df segun una condicion de tipo texto (Colocar siempre entre "" para poder ejecutar esta condicion)

gapminder %>% 
  filter(country == "Afghanistan")
# Reordenar datos segun una variable de menor a mayor

gapminder %>% 
  arrange(gdpPercap)
# Reordenar datos segun una variable de mayor a menor

gapminder %>% 
  arrange(desc(gdpPercap))
# Manipular df segun varias condiciones

gapminder %>% 
  filter(year==2007 & continent=="Asia") %>% 
  arrange(desc(gdpPercap)) %>% 
  print(n=100)
## # A tibble: 33 × 6
##    country            continent  year lifeExp        pop gdpPercap
##    <fct>              <fct>     <int>   <dbl>      <int>     <dbl>
##  1 Kuwait             Asia       2007    77.6    2505559    47307.
##  2 Singapore          Asia       2007    80.0    4553009    47143.
##  3 Hong Kong, China   Asia       2007    82.2    6980412    39725.
##  4 Japan              Asia       2007    82.6  127467972    31656.
##  5 Bahrain            Asia       2007    75.6     708573    29796.
##  6 Taiwan             Asia       2007    78.4   23174294    28718.
##  7 Israel             Asia       2007    80.7    6426679    25523.
##  8 Korea, Rep.        Asia       2007    78.6   49044790    23348.
##  9 Oman               Asia       2007    75.6    3204897    22316.
## 10 Saudi Arabia       Asia       2007    72.8   27601038    21655.
## 11 Malaysia           Asia       2007    74.2   24821286    12452.
## 12 Iran               Asia       2007    71.0   69453570    11606.
## 13 Lebanon            Asia       2007    72.0    3921278    10461.
## 14 Thailand           Asia       2007    70.6   65068149     7458.
## 15 China              Asia       2007    73.0 1318683096     4959.
## 16 Jordan             Asia       2007    72.5    6053193     4519.
## 17 Iraq               Asia       2007    59.5   27499638     4471.
## 18 Syria              Asia       2007    74.1   19314747     4185.
## 19 Sri Lanka          Asia       2007    72.4   20378239     3970.
## 20 Indonesia          Asia       2007    70.6  223547000     3541.
## 21 Philippines        Asia       2007    71.7   91077287     3190.
## 22 Mongolia           Asia       2007    66.8    2874127     3096.
## 23 West Bank and Gaza Asia       2007    73.4    4018332     3025.
## 24 Pakistan           Asia       2007    65.5  169270617     2606.
## 25 India              Asia       2007    64.7 1110396331     2452.
## 26 Vietnam            Asia       2007    74.2   85262356     2442.
## 27 Yemen, Rep.        Asia       2007    62.7   22211743     2281.
## 28 Cambodia           Asia       2007    59.7   14131858     1714.
## 29 Korea, Dem. Rep.   Asia       2007    67.3   23301725     1593.
## 30 Bangladesh         Asia       2007    64.1  150448339     1391.
## 31 Nepal              Asia       2007    63.8   28901790     1091.
## 32 Afghanistan        Asia       2007    43.8   31889923      975.
## 33 Myanmar            Asia       2007    62.1   47761980      944
# Crear un nuevo df

gapminder_asia_2007<-gapminder %>% 
  filter(year==2007 & continent=="Asia") %>% 
  arrange(desc(gdpPercap)) %>% 
  print(n=100)
## # A tibble: 33 × 6
##    country            continent  year lifeExp        pop gdpPercap
##    <fct>              <fct>     <int>   <dbl>      <int>     <dbl>
##  1 Kuwait             Asia       2007    77.6    2505559    47307.
##  2 Singapore          Asia       2007    80.0    4553009    47143.
##  3 Hong Kong, China   Asia       2007    82.2    6980412    39725.
##  4 Japan              Asia       2007    82.6  127467972    31656.
##  5 Bahrain            Asia       2007    75.6     708573    29796.
##  6 Taiwan             Asia       2007    78.4   23174294    28718.
##  7 Israel             Asia       2007    80.7    6426679    25523.
##  8 Korea, Rep.        Asia       2007    78.6   49044790    23348.
##  9 Oman               Asia       2007    75.6    3204897    22316.
## 10 Saudi Arabia       Asia       2007    72.8   27601038    21655.
## 11 Malaysia           Asia       2007    74.2   24821286    12452.
## 12 Iran               Asia       2007    71.0   69453570    11606.
## 13 Lebanon            Asia       2007    72.0    3921278    10461.
## 14 Thailand           Asia       2007    70.6   65068149     7458.
## 15 China              Asia       2007    73.0 1318683096     4959.
## 16 Jordan             Asia       2007    72.5    6053193     4519.
## 17 Iraq               Asia       2007    59.5   27499638     4471.
## 18 Syria              Asia       2007    74.1   19314747     4185.
## 19 Sri Lanka          Asia       2007    72.4   20378239     3970.
## 20 Indonesia          Asia       2007    70.6  223547000     3541.
## 21 Philippines        Asia       2007    71.7   91077287     3190.
## 22 Mongolia           Asia       2007    66.8    2874127     3096.
## 23 West Bank and Gaza Asia       2007    73.4    4018332     3025.
## 24 Pakistan           Asia       2007    65.5  169270617     2606.
## 25 India              Asia       2007    64.7 1110396331     2452.
## 26 Vietnam            Asia       2007    74.2   85262356     2442.
## 27 Yemen, Rep.        Asia       2007    62.7   22211743     2281.
## 28 Cambodia           Asia       2007    59.7   14131858     1714.
## 29 Korea, Dem. Rep.   Asia       2007    67.3   23301725     1593.
## 30 Bangladesh         Asia       2007    64.1  150448339     1391.
## 31 Nepal              Asia       2007    63.8   28901790     1091.
## 32 Afghanistan        Asia       2007    43.8   31889923      975.
## 33 Myanmar            Asia       2007    62.1   47761980      944

DF 2 con dplyr: como crear y modificar variables

gapminder: El paquete gapminder contiene un conjunto de datos homónimo que contiene información sobre el crecimiento poblacional, la esperanza de vida y el PIB per cápita de varios países a lo largo del tiempo.

dplyr: El paquete dplyr es una de las bibliotecas más populares para el procesamiento y manipulación de datos en R. Proporciona un conjunto de funciones simples y coherentes para realizar tareas comunes de manipulación de datos.

ggplot2: El paquete ggplot2 es una poderosa biblioteca de visualización de datos en R. Está basado en la gramática de gráficos y permite crear visualizaciones altamente personalizables y atractivas.

library(gapminder)
library(dplyr)
library(ggplot2)

# Mutar variable "lifeExp" de años a meses

gapminder_1<-gapminder %>% 
  mutate(lifeExp=lifeExp*12)
  
# Crea una nueva variable llamada ID2

gapminder_1<-gapminder %>% 
  mutate(ID2=c(1:1704)) %>% 
  print()
## # A tibble: 1,704 × 7
##    country     continent  year lifeExp      pop gdpPercap   ID2
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl> <int>
##  1 Afghanistan Asia       1952    28.8  8425333      779.     1
##  2 Afghanistan Asia       1957    30.3  9240934      821.     2
##  3 Afghanistan Asia       1962    32.0 10267083      853.     3
##  4 Afghanistan Asia       1967    34.0 11537966      836.     4
##  5 Afghanistan Asia       1972    36.1 13079460      740.     5
##  6 Afghanistan Asia       1977    38.4 14880372      786.     6
##  7 Afghanistan Asia       1982    39.9 12881816      978.     7
##  8 Afghanistan Asia       1987    40.8 13867957      852.     8
##  9 Afghanistan Asia       1992    41.7 16317921      649.     9
## 10 Afghanistan Asia       1997    41.8 22227415      635.    10
## # ℹ 1,694 more rows
# Crear una nueva variable derivada de variables disponibles

gapminder_1<-gapminder %>% 
  mutate(gdp=gdpPercap*pop) %>% 
  print()
## # A tibble: 1,704 × 7
##    country     continent  year lifeExp      pop gdpPercap          gdp
##    <fct>       <fct>     <int>   <dbl>    <int>     <dbl>        <dbl>
##  1 Afghanistan Asia       1952    28.8  8425333      779.  6567086330.
##  2 Afghanistan Asia       1957    30.3  9240934      821.  7585448670.
##  3 Afghanistan Asia       1962    32.0 10267083      853.  8758855797.
##  4 Afghanistan Asia       1967    34.0 11537966      836.  9648014150.
##  5 Afghanistan Asia       1972    36.1 13079460      740.  9678553274.
##  6 Afghanistan Asia       1977    38.4 14880372      786. 11697659231.
##  7 Afghanistan Asia       1982    39.9 12881816      978. 12598563401.
##  8 Afghanistan Asia       1987    40.8 13867957      852. 11820990309.
##  9 Afghanistan Asia       1992    41.7 16317921      649. 10595901589.
## 10 Afghanistan Asia       1997    41.8 22227415      635. 14121995875.
## # ℹ 1,694 more rows
# Quien tiene el GDP mas alto

gapminder_1 %>% 
  filter(year==2007) %>% 
  arrange(desc(gdp)) %>% 
  print()
## # A tibble: 142 × 7
##    country        continent  year lifeExp        pop gdpPercap     gdp
##    <fct>          <fct>     <int>   <dbl>      <int>     <dbl>   <dbl>
##  1 United States  Americas   2007    78.2  301139947    42952. 1.29e13
##  2 China          Asia       2007    73.0 1318683096     4959. 6.54e12
##  3 Japan          Asia       2007    82.6  127467972    31656. 4.04e12
##  4 India          Asia       2007    64.7 1110396331     2452. 2.72e12
##  5 Germany        Europe     2007    79.4   82400996    32170. 2.65e12
##  6 United Kingdom Europe     2007    79.4   60776238    33203. 2.02e12
##  7 France         Europe     2007    80.7   61083916    30470. 1.86e12
##  8 Brazil         Americas   2007    72.4  190010647     9066. 1.72e12
##  9 Italy          Europe     2007    80.5   58147733    28570. 1.66e12
## 10 Mexico         Americas   2007    76.2  108700891    11978. 1.30e12
## # ℹ 132 more rows
# Grafico

gapminder_1 %>% 
  filter(year==2007) %>% 
  ggplot( aes(x= pop, y=gdp))+
  geom_point()+
  scale_x_log10()+
  scale_y_log10()+
  geom_smooth()
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'

Clase 8: 6/9 dplyr;df_2

Ejemplos de uso de dplyr

library(dplyr)
df_mtcars<-mtcars %>% 
  print()
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
# ¿Cuantos Vehiculos tienen menos de 100hp?

df_mtcars %>% 
  filter(hp<100)
# ¿cuantos vehiculos tienen menos de 100hp "y" por lo menos 6 ciclindros?
# **filter(hp<100 & cyl>=6)**

df_mtcars %>% 
  filter(hp<100, cyl>=6)
# ¿Cuantos Vehiculos tienen mas de 100hp y por lo menos 6 cilindros o que el consumo (mpg) sea superior a 25?

df_mtcars %>% 
  filter(hp>100, cyl>=6 | mpg>25)
# ¿Cuantos Vehiculos tienen mas de 100hp y por lo menos 6 cilindros y que el consumo (mpg) sea superior a 25?

df_mtcars %>% 
  filter(hp>100, cyl>=6, mpg>25)
# ¿Cuantos Vehiculos tienen menos de 100 hp? de mayor a menos (mpg)

df_mtcars %>% 
  filter(hp<100) %>% 
  arrange(desc(mpg))
# ¿Cuantos Vehiculos tienen menos de 100 hp? de mayor a menos (mpg). presente unicamente las variables mpg, hp, wt.

Ejemplo_5<-df_mtcars %>% 
  filter(hp<100) %>% 
  arrange(desc(mpg)) %>% 
  select(mpg, hp, wt) %>% 
  print()
##                 mpg hp    wt
## Toyota Corolla 33.9 65 1.835
## Fiat 128       32.4 66 2.200
## Honda Civic    30.4 52 1.615
## Fiat X1-9      27.3 66 1.935
## Porsche 914-2  26.0 91 2.140
## Merc 240D      24.4 62 3.190
## Datsun 710     22.8 93 2.320
## Merc 230       22.8 95 3.150
## Toyota Corona  21.5 97 2.465
# ¿Cuantos Vehiculos tienen menos de 100 hp? de mayor a menor (mpg). muestre como primera variable (wt)

Ejemplo_6<-df_mtcars %>% 
  filter(hp<100) %>% 
  arrange(desc(mpg)) %>% 
  select(wt, everything()) %>% 
  print()
##                   wt  mpg cyl  disp hp drat  qsec vs am gear carb
## Toyota Corolla 1.835 33.9   4  71.1 65 4.22 19.90  1  1    4    1
## Fiat 128       2.200 32.4   4  78.7 66 4.08 19.47  1  1    4    1
## Honda Civic    1.615 30.4   4  75.7 52 4.93 18.52  1  1    4    2
## Fiat X1-9      1.935 27.3   4  79.0 66 4.08 18.90  1  1    4    1
## Porsche 914-2  2.140 26.0   4 120.3 91 4.43 16.70  0  1    5    2
## Merc 240D      3.190 24.4   4 146.7 62 3.69 20.00  1  0    4    2
## Datsun 710     2.320 22.8   4 108.0 93 3.85 18.61  1  1    4    1
## Merc 230       3.150 22.8   4 140.8 95 3.92 22.90  1  0    4    2
## Toyota Corona  2.465 21.5   4 120.1 97 3.70 20.01  1  0    3    1
# ¿Cuantos Vehiculos tienen menos de 100 hp? presentar de mayor a menor (mpg). presente primero variable mpg, hp, wt.

Ejemplo_7<-df_mtcars %>% 
  filter(hp<100) %>% 
  arrange(desc(mpg)) %>% 
  select(mpg, hp, wt, everything()) %>% 
  print()
##                 mpg hp    wt cyl  disp drat  qsec vs am gear carb
## Toyota Corolla 33.9 65 1.835   4  71.1 4.22 19.90  1  1    4    1
## Fiat 128       32.4 66 2.200   4  78.7 4.08 19.47  1  1    4    1
## Honda Civic    30.4 52 1.615   4  75.7 4.93 18.52  1  1    4    2
## Fiat X1-9      27.3 66 1.935   4  79.0 4.08 18.90  1  1    4    1
## Porsche 914-2  26.0 91 2.140   4 120.3 4.43 16.70  0  1    5    2
## Merc 240D      24.4 62 3.190   4 146.7 3.69 20.00  1  0    4    2
## Datsun 710     22.8 93 2.320   4 108.0 3.85 18.61  1  1    4    1
## Merc 230       22.8 95 3.150   4 140.8 3.92 22.90  1  0    4    2
## Toyota Corona  21.5 97 2.465   4 120.1 3.70 20.01  1  0    3    1
# ¿Cual es el promedio de mpg en automoviles de la misma cilindrada?
# 1. Solo contengan dos decimales
# 2. Añadir la desvacion estandar
# 3. Primero debe de ir los 8 cilindros
# 4. Lo que tenga mayor volatilidad (dispercion=desviacion estandar)

Ejemplo_8<-df_mtcars %>% 
  group_by(cyl) %>% 
  summarise(promedio_mpg=mean(mpg) %>% round(digits = 2), 
            sd_mpg=sd(mpg) %>% round(digits = 2)) %>% 
  arrange(desc(sd_mpg)) %>% 
  print()
## # A tibble: 3 × 3
##     cyl promedio_mpg sd_mpg
##   <dbl>        <dbl>  <dbl>
## 1     4         26.7   4.51
## 2     8         15.1   2.56
## 3     6         19.7   1.45

Ejemplos de dudas

#  Si quieres ordenar las variables alfabéticamente  puedes usar order() así:

df_mtcars %>% 
  select(order(names(df_mtcars))) %>% 
  print()
##                     am carb cyl  disp drat gear  hp  mpg  qsec vs    wt
## Mazda RX4            1    4   6 160.0 3.90    4 110 21.0 16.46  0 2.620
## Mazda RX4 Wag        1    4   6 160.0 3.90    4 110 21.0 17.02  0 2.875
## Datsun 710           1    1   4 108.0 3.85    4  93 22.8 18.61  1 2.320
## Hornet 4 Drive       0    1   6 258.0 3.08    3 110 21.4 19.44  1 3.215
## Hornet Sportabout    0    2   8 360.0 3.15    3 175 18.7 17.02  0 3.440
## Valiant              0    1   6 225.0 2.76    3 105 18.1 20.22  1 3.460
## Duster 360           0    4   8 360.0 3.21    3 245 14.3 15.84  0 3.570
## Merc 240D            0    2   4 146.7 3.69    4  62 24.4 20.00  1 3.190
## Merc 230             0    2   4 140.8 3.92    4  95 22.8 22.90  1 3.150
## Merc 280             0    4   6 167.6 3.92    4 123 19.2 18.30  1 3.440
## Merc 280C            0    4   6 167.6 3.92    4 123 17.8 18.90  1 3.440
## Merc 450SE           0    3   8 275.8 3.07    3 180 16.4 17.40  0 4.070
## Merc 450SL           0    3   8 275.8 3.07    3 180 17.3 17.60  0 3.730
## Merc 450SLC          0    3   8 275.8 3.07    3 180 15.2 18.00  0 3.780
## Cadillac Fleetwood   0    4   8 472.0 2.93    3 205 10.4 17.98  0 5.250
## Lincoln Continental  0    4   8 460.0 3.00    3 215 10.4 17.82  0 5.424
## Chrysler Imperial    0    4   8 440.0 3.23    3 230 14.7 17.42  0 5.345
## Fiat 128             1    1   4  78.7 4.08    4  66 32.4 19.47  1 2.200
## Honda Civic          1    2   4  75.7 4.93    4  52 30.4 18.52  1 1.615
## Toyota Corolla       1    1   4  71.1 4.22    4  65 33.9 19.90  1 1.835
## Toyota Corona        0    1   4 120.1 3.70    3  97 21.5 20.01  1 2.465
## Dodge Challenger     0    2   8 318.0 2.76    3 150 15.5 16.87  0 3.520
## AMC Javelin          0    2   8 304.0 3.15    3 150 15.2 17.30  0 3.435
## Camaro Z28           0    4   8 350.0 3.73    3 245 13.3 15.41  0 3.840
## Pontiac Firebird     0    2   8 400.0 3.08    3 175 19.2 17.05  0 3.845
## Fiat X1-9            1    1   4  79.0 4.08    4  66 27.3 18.90  1 1.935
## Porsche 914-2        1    2   4 120.3 4.43    5  91 26.0 16.70  0 2.140
## Lotus Europa         1    2   4  95.1 3.77    5 113 30.4 16.90  1 1.513
## Ford Pantera L       1    4   8 351.0 4.22    5 264 15.8 14.50  0 3.170
## Ferrari Dino         1    6   6 145.0 3.62    5 175 19.7 15.50  0 2.770
## Maserati Bora        1    8   8 301.0 3.54    5 335 15.0 14.60  0 3.570
## Volvo 142E           1    2   4 121.0 4.11    4 109 21.4 18.60  1 2.780
#  si lo quieres decreciente alfabeticamente (Z-A) sólo agrega el argumento decreasing = TRUE dentro de order

df_mtcars %>% 
  select(order(names(df_mtcars), decreasing = TRUE)) %>% 
  print()
##                        wt vs  qsec  mpg  hp gear drat  disp cyl carb am
## Mazda RX4           2.620  0 16.46 21.0 110    4 3.90 160.0   6    4  1
## Mazda RX4 Wag       2.875  0 17.02 21.0 110    4 3.90 160.0   6    4  1
## Datsun 710          2.320  1 18.61 22.8  93    4 3.85 108.0   4    1  1
## Hornet 4 Drive      3.215  1 19.44 21.4 110    3 3.08 258.0   6    1  0
## Hornet Sportabout   3.440  0 17.02 18.7 175    3 3.15 360.0   8    2  0
## Valiant             3.460  1 20.22 18.1 105    3 2.76 225.0   6    1  0
## Duster 360          3.570  0 15.84 14.3 245    3 3.21 360.0   8    4  0
## Merc 240D           3.190  1 20.00 24.4  62    4 3.69 146.7   4    2  0
## Merc 230            3.150  1 22.90 22.8  95    4 3.92 140.8   4    2  0
## Merc 280            3.440  1 18.30 19.2 123    4 3.92 167.6   6    4  0
## Merc 280C           3.440  1 18.90 17.8 123    4 3.92 167.6   6    4  0
## Merc 450SE          4.070  0 17.40 16.4 180    3 3.07 275.8   8    3  0
## Merc 450SL          3.730  0 17.60 17.3 180    3 3.07 275.8   8    3  0
## Merc 450SLC         3.780  0 18.00 15.2 180    3 3.07 275.8   8    3  0
## Cadillac Fleetwood  5.250  0 17.98 10.4 205    3 2.93 472.0   8    4  0
## Lincoln Continental 5.424  0 17.82 10.4 215    3 3.00 460.0   8    4  0
## Chrysler Imperial   5.345  0 17.42 14.7 230    3 3.23 440.0   8    4  0
## Fiat 128            2.200  1 19.47 32.4  66    4 4.08  78.7   4    1  1
## Honda Civic         1.615  1 18.52 30.4  52    4 4.93  75.7   4    2  1
## Toyota Corolla      1.835  1 19.90 33.9  65    4 4.22  71.1   4    1  1
## Toyota Corona       2.465  1 20.01 21.5  97    3 3.70 120.1   4    1  0
## Dodge Challenger    3.520  0 16.87 15.5 150    3 2.76 318.0   8    2  0
## AMC Javelin         3.435  0 17.30 15.2 150    3 3.15 304.0   8    2  0
## Camaro Z28          3.840  0 15.41 13.3 245    3 3.73 350.0   8    4  0
## Pontiac Firebird    3.845  0 17.05 19.2 175    3 3.08 400.0   8    2  0
## Fiat X1-9           1.935  1 18.90 27.3  66    4 4.08  79.0   4    1  1
## Porsche 914-2       2.140  0 16.70 26.0  91    5 4.43 120.3   4    2  1
## Lotus Europa        1.513  1 16.90 30.4 113    5 3.77  95.1   4    2  1
## Ford Pantera L      3.170  0 14.50 15.8 264    5 4.22 351.0   8    4  1
## Ferrari Dino        2.770  0 15.50 19.7 175    5 3.62 145.0   6    6  1
## Maserati Bora       3.570  0 14.60 15.0 335    5 3.54 301.0   8    8  1
## Volvo 142E          2.780  1 18.60 21.4 109    4 4.11 121.0   4    2  1
# si se desea poner al inicio las variables mpg, hp, wt, ...todas las varaibles y al final se quiere la variable cyl, puede hacerse así

df_mtcars %>% 
  select(mpg, hp, wt, everything()) %>% 
  relocate(cyl,.after = last_col()) %>% 
  print()
##                      mpg  hp    wt  disp drat  qsec vs am gear carb cyl
## Mazda RX4           21.0 110 2.620 160.0 3.90 16.46  0  1    4    4   6
## Mazda RX4 Wag       21.0 110 2.875 160.0 3.90 17.02  0  1    4    4   6
## Datsun 710          22.8  93 2.320 108.0 3.85 18.61  1  1    4    1   4
## Hornet 4 Drive      21.4 110 3.215 258.0 3.08 19.44  1  0    3    1   6
## Hornet Sportabout   18.7 175 3.440 360.0 3.15 17.02  0  0    3    2   8
## Valiant             18.1 105 3.460 225.0 2.76 20.22  1  0    3    1   6
## Duster 360          14.3 245 3.570 360.0 3.21 15.84  0  0    3    4   8
## Merc 240D           24.4  62 3.190 146.7 3.69 20.00  1  0    4    2   4
## Merc 230            22.8  95 3.150 140.8 3.92 22.90  1  0    4    2   4
## Merc 280            19.2 123 3.440 167.6 3.92 18.30  1  0    4    4   6
## Merc 280C           17.8 123 3.440 167.6 3.92 18.90  1  0    4    4   6
## Merc 450SE          16.4 180 4.070 275.8 3.07 17.40  0  0    3    3   8
## Merc 450SL          17.3 180 3.730 275.8 3.07 17.60  0  0    3    3   8
## Merc 450SLC         15.2 180 3.780 275.8 3.07 18.00  0  0    3    3   8
## Cadillac Fleetwood  10.4 205 5.250 472.0 2.93 17.98  0  0    3    4   8
## Lincoln Continental 10.4 215 5.424 460.0 3.00 17.82  0  0    3    4   8
## Chrysler Imperial   14.7 230 5.345 440.0 3.23 17.42  0  0    3    4   8
## Fiat 128            32.4  66 2.200  78.7 4.08 19.47  1  1    4    1   4
## Honda Civic         30.4  52 1.615  75.7 4.93 18.52  1  1    4    2   4
## Toyota Corolla      33.9  65 1.835  71.1 4.22 19.90  1  1    4    1   4
## Toyota Corona       21.5  97 2.465 120.1 3.70 20.01  1  0    3    1   4
## Dodge Challenger    15.5 150 3.520 318.0 2.76 16.87  0  0    3    2   8
## AMC Javelin         15.2 150 3.435 304.0 3.15 17.30  0  0    3    2   8
## Camaro Z28          13.3 245 3.840 350.0 3.73 15.41  0  0    3    4   8
## Pontiac Firebird    19.2 175 3.845 400.0 3.08 17.05  0  0    3    2   8
## Fiat X1-9           27.3  66 1.935  79.0 4.08 18.90  1  1    4    1   4
## Porsche 914-2       26.0  91 2.140 120.3 4.43 16.70  0  1    5    2   4
## Lotus Europa        30.4 113 1.513  95.1 3.77 16.90  1  1    5    2   4
## Ford Pantera L      15.8 264 3.170 351.0 4.22 14.50  0  1    5    4   8
## Ferrari Dino        19.7 175 2.770 145.0 3.62 15.50  0  1    5    6   6
## Maserati Bora       15.0 335 3.570 301.0 3.54 14.60  0  1    5    8   8
## Volvo 142E          21.4 109 2.780 121.0 4.11 18.60  1  1    4    2   4

Clase 9: 7/9 dplyr;df_3

# Calcula el peso total en libras de cada automovil
# Colocarlo despues de "wt" utilizar .before= (antes) y .after= (despues)

Ejemplo_9<-df_mtcars %>% 
  mutate(wt_lb=wt*1000) %>% 
  relocate(wt_lb,.before = wt) %>% 
  print()
##                      mpg cyl  disp  hp drat wt_lb    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90  2620 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90  2875 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85  2320 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08  3215 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15  3440 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76  3460 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21  3570 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69  3190 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92  3150 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92  3440 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92  3440 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07  4070 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07  3730 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07  3780 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93  5250 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00  5424 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23  5345 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08  2200 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93  1615 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22  1835 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70  2465 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76  3520 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15  3435 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73  3840 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08  3845 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08  1935 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43  2140 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77  1513 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22  3170 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62  2770 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54  3570 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11  2780 2.780 18.60  1  1    4    2
# clasifique los autos por su peso de Ia si guiente manera:
# "particular" hasta 2000 lb
# "liviano" mas de 2000 lb y hasta 4000 lb
#" pesado" mas de 4000 lb

Ejemplo_10<-Ejemplo_9 %>% 
  mutate(categoria=case_when(wt_lb<=2000 ~ "Particular",
                             wt_lb>2000 & wt_lb<=4000 ~ "Liviano",
                             wt_lb>4000 ~ "Pesado", 
                             TRUE ~ "No clasificado")) %>%
  relocate(categoria,.before = mpg) %>% 
  print()
##                      categoria  mpg cyl  disp  hp drat wt_lb    wt  qsec vs am
## Mazda RX4              Liviano 21.0   6 160.0 110 3.90  2620 2.620 16.46  0  1
## Mazda RX4 Wag          Liviano 21.0   6 160.0 110 3.90  2875 2.875 17.02  0  1
## Datsun 710             Liviano 22.8   4 108.0  93 3.85  2320 2.320 18.61  1  1
## Hornet 4 Drive         Liviano 21.4   6 258.0 110 3.08  3215 3.215 19.44  1  0
## Hornet Sportabout      Liviano 18.7   8 360.0 175 3.15  3440 3.440 17.02  0  0
## Valiant                Liviano 18.1   6 225.0 105 2.76  3460 3.460 20.22  1  0
## Duster 360             Liviano 14.3   8 360.0 245 3.21  3570 3.570 15.84  0  0
## Merc 240D              Liviano 24.4   4 146.7  62 3.69  3190 3.190 20.00  1  0
## Merc 230               Liviano 22.8   4 140.8  95 3.92  3150 3.150 22.90  1  0
## Merc 280               Liviano 19.2   6 167.6 123 3.92  3440 3.440 18.30  1  0
## Merc 280C              Liviano 17.8   6 167.6 123 3.92  3440 3.440 18.90  1  0
## Merc 450SE              Pesado 16.4   8 275.8 180 3.07  4070 4.070 17.40  0  0
## Merc 450SL             Liviano 17.3   8 275.8 180 3.07  3730 3.730 17.60  0  0
## Merc 450SLC            Liviano 15.2   8 275.8 180 3.07  3780 3.780 18.00  0  0
## Cadillac Fleetwood      Pesado 10.4   8 472.0 205 2.93  5250 5.250 17.98  0  0
## Lincoln Continental     Pesado 10.4   8 460.0 215 3.00  5424 5.424 17.82  0  0
## Chrysler Imperial       Pesado 14.7   8 440.0 230 3.23  5345 5.345 17.42  0  0
## Fiat 128               Liviano 32.4   4  78.7  66 4.08  2200 2.200 19.47  1  1
## Honda Civic         Particular 30.4   4  75.7  52 4.93  1615 1.615 18.52  1  1
## Toyota Corolla      Particular 33.9   4  71.1  65 4.22  1835 1.835 19.90  1  1
## Toyota Corona          Liviano 21.5   4 120.1  97 3.70  2465 2.465 20.01  1  0
## Dodge Challenger       Liviano 15.5   8 318.0 150 2.76  3520 3.520 16.87  0  0
## AMC Javelin            Liviano 15.2   8 304.0 150 3.15  3435 3.435 17.30  0  0
## Camaro Z28             Liviano 13.3   8 350.0 245 3.73  3840 3.840 15.41  0  0
## Pontiac Firebird       Liviano 19.2   8 400.0 175 3.08  3845 3.845 17.05  0  0
## Fiat X1-9           Particular 27.3   4  79.0  66 4.08  1935 1.935 18.90  1  1
## Porsche 914-2          Liviano 26.0   4 120.3  91 4.43  2140 2.140 16.70  0  1
## Lotus Europa        Particular 30.4   4  95.1 113 3.77  1513 1.513 16.90  1  1
## Ford Pantera L         Liviano 15.8   8 351.0 264 4.22  3170 3.170 14.50  0  1
## Ferrari Dino           Liviano 19.7   6 145.0 175 3.62  2770 2.770 15.50  0  1
## Maserati Bora          Liviano 15.0   8 301.0 335 3.54  3570 3.570 14.60  0  1
## Volvo 142E             Liviano 21.4   4 121.0 109 4.11  2780 2.780 18.60  1  1
##                     gear carb
## Mazda RX4              4    4
## Mazda RX4 Wag          4    4
## Datsun 710             4    1
## Hornet 4 Drive         3    1
## Hornet Sportabout      3    2
## Valiant                3    1
## Duster 360             3    4
## Merc 240D              4    2
## Merc 230               4    2
## Merc 280               4    4
## Merc 280C              4    4
## Merc 450SE             3    3
## Merc 450SL             3    3
## Merc 450SLC            3    3
## Cadillac Fleetwood     3    4
## Lincoln Continental    3    4
## Chrysler Imperial      3    4
## Fiat 128               4    1
## Honda Civic            4    2
## Toyota Corolla         4    1
## Toyota Corona          3    1
## Dodge Challenger       3    2
## AMC Javelin            3    2
## Camaro Z28             3    4
## Pontiac Firebird       3    2
## Fiat X1-9              4    1
## Porsche 914-2          5    2
## Lotus Europa           5    2
## Ford Pantera L         5    4
## Ferrari Dino           5    6
## Maserati Bora          5    8
## Volvo 142E             4    2
# -verificar cuantos automoviles quedaron por categorias y su porcentaje

Ejemplo_11<-Ejemplo_10 %>% 
  group_by(categoria) %>% 
  summarise(total_autor=n()) %>% 
  as.data.frame() %>% 
  mutate(porcentaje=prop.table(total_autor)*100) %>% 
  print()
##    categoria total_autor porcentaje
## 1    Liviano          24       75.0
## 2 Particular           4       12.5
## 3     Pesado           4       12.5
# Calcule el promedio de mpg de acuerdo a la cladificacion de peso que acavamos de incluir

Ejemplo_12<-Ejemplo_10 %>% 
  group_by(categoria) %>% 
  summarise(promedio_mpg=mean(mpg) %>% round(digits = 2), 
            sd_mpg=sd(mpg) %>% round(digits = 2),
            n_autos=n()) %>%
  mutate(`% de grupo`=prop.table(n_autos)*100 %>% round(digits = 2)) %>% 
  arrange(`% de grupo`) %>% 
  relocate(n_autos, `% de grupo`,.after = categoria) %>%
  print()
## # A tibble: 3 × 5
##   categoria  n_autos `% de grupo` promedio_mpg sd_mpg
##   <chr>        <int>        <dbl>        <dbl>  <dbl>
## 1 Particular       4         12.5         30.5   2.7 
## 2 Pesado           4         12.5         13.0   3.05
## 3 Liviano         24         75           19.5   4.34
# ¿Cuantos automoviles tienen entre 4 y 5 velocidades (gear)?

Ejemplo_13<-df_mtcars %>% 
  filter(gear %>% between(4,5)) %>% 
  print()
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280       19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C      17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora  15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
# Otra manera

Ejemplo_13<-df_mtcars %>% 
  filter(gear>=4 & gear<=5) %>% 
  print()
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280       19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C      17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora  15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2