Capítulo4 Calculadora sofisticada

Fecha de la ultima revisión

## [1] "2024-11-07"

Activar los siguientes packetes

library(tidyverse)
library(datos)

El tema proviene de los siguientes sitios.

English: https://r4ds.had.co.nz/workflow-basics.html

Español: https://es.r4ds.hadley.nz/04-workflow-basics.html


4.1 Temas:

  • Conocimiento básicos de programación
  • La importancia de los nombres
  • Usando funciones

4.1.1 Sumar

2+2
## [1] 4

4.1.2 Exactamente como una calculadora

(23+3+3)^2+2
## [1] 843

4.1.3 Trigonometria

sin(pi/3)
## [1] 0.8660254

4.1.4 Log natural y a base 10

log(100)
## [1] 4.60517
log10(100)
## [1] 2

4.1.5 Asignaciones de variables

x<- 4
x
## [1] 4
y=3
y
## [1] 3
x/y
## [1] 1.333333

4.1.6 Variables

  • la función “seq” para secuencia
edad_nd=seq(101, 110)
edad_nd
##  [1] 101 102 103 104 105 106 107 108 109 110
  • variables asignada
edad_uprh=c(11:20)
edad_uprh
##  [1] 11 12 13 14 15 16 17 18 19 20

4.1.7 Unir variables en un data frame

edad=data.frame(edad_nd, edad_uprh)
edad
##    edad_nd edad_uprh
## 1      101        11
## 2      102        12
## 3      103        13
## 4      104        14
## 5      105        15
## 6      106        16
## 7      107        17
## 8      108        18
## 9      109        19
## 10     110        20
edad$diff=edad$edad_nd-edad$edad_uprh
edad
##    edad_nd edad_uprh diff
## 1      101        11   90
## 2      102        12   90
## 3      103        13   90
## 4      104        14   90
## 5      105        15   90
## 6      106        16   90
## 7      107        17   90
## 8      108        18   90
## 9      109        19   90
## 10     110        20   90
edad$tres=edad$edad_uprh^3
edad
##    edad_nd edad_uprh diff tres
## 1      101        11   90 1331
## 2      102        12   90 1728
## 3      103        13   90 2197
## 4      104        14   90 2744
## 5      105        15   90 3375
## 6      106        16   90 4096
## 7      107        17   90 4913
## 8      108        18   90 5832
## 9      109        19   90 6859
## 10     110        20   90 8000

4.1.8 Errores cuando a variables no tienen la misma cantidad de entradas

edad_nd_1=base::seq(101, 111)
edad_nd_1
##  [1] 101 102 103 104 105 106 107 108 109 110 111
  • variables asignada
edad_uprh_1=c(11:20, NA)
edad_uprh_1
##  [1] 11 12 13 14 15 16 17 18 19 20 NA

4.1.9 Unir variables en un data frame

edad_1=data.frame(edad_nd_1, edad_uprh_1)
edad_1
##    edad_nd_1 edad_uprh_1
## 1        101          11
## 2        102          12
## 3        103          13
## 4        104          14
## 5        105          15
## 6        106          16
## 7        107          17
## 8        108          18
## 9        109          19
## 10       110          20
## 11       111          NA

4.1.10 Cuantos valores hay en una variable

length(edad_uprh)
## [1] 10
length(edad$tres)
## [1] 10
length(edad)
## [1] 4

4.1.11 Seleccionar solamente parte de los datos de un archivo

  • Primero visualizar los datos
library(datos)
millas
## # A tibble: 234 × 11
##    fabricante modelo     cilindrada  anio cilindros transmision traccion ciudad
##    <chr>      <chr>           <dbl> <int>     <int> <chr>       <chr>     <int>
##  1 audi       a4                1.8  1999         4 auto(l5)    d            18
##  2 audi       a4                1.8  1999         4 manual(m5)  d            21
##  3 audi       a4                2    2008         4 manual(m6)  d            20
##  4 audi       a4                2    2008         4 auto(av)    d            21
##  5 audi       a4                2.8  1999         6 auto(l5)    d            16
##  6 audi       a4                2.8  1999         6 manual(m5)  d            18
##  7 audi       a4                3.1  2008         6 auto(av)    d            18
##  8 audi       a4 quattro        1.8  1999         4 manual(m5)  4            18
##  9 audi       a4 quattro        1.8  1999         4 auto(l5)    4            16
## 10 audi       a4 quattro        2    2008         4 manual(m6)  4            20
## # ℹ 224 more rows
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>

4.1.11.1 Seleccionar los carros que tienen cilindros igual a 8 (solamente)

La función de Pipe. %>% o |>

library(tidyverse)
millas
## # A tibble: 234 × 11
##    fabricante modelo     cilindrada  anio cilindros transmision traccion ciudad
##    <chr>      <chr>           <dbl> <int>     <int> <chr>       <chr>     <int>
##  1 audi       a4                1.8  1999         4 auto(l5)    d            18
##  2 audi       a4                1.8  1999         4 manual(m5)  d            21
##  3 audi       a4                2    2008         4 manual(m6)  d            20
##  4 audi       a4                2    2008         4 auto(av)    d            21
##  5 audi       a4                2.8  1999         6 auto(l5)    d            16
##  6 audi       a4                2.8  1999         6 manual(m5)  d            18
##  7 audi       a4                3.1  2008         6 auto(av)    d            18
##  8 audi       a4 quattro        1.8  1999         4 manual(m5)  4            18
##  9 audi       a4 quattro        1.8  1999         4 auto(l5)    4            16
## 10 audi       a4 quattro        2    2008         4 manual(m6)  4            20
## # ℹ 224 more rows
## # ℹ 3 more variables: autopista <int>, combustible <chr>, clase <chr>
names(millas)
##  [1] "fabricante"  "modelo"      "cilindrada"  "anio"        "cilindros"  
##  [6] "transmision" "traccion"    "ciudad"      "autopista"   "combustible"
## [11] "clase"
millas |> dplyr::select(cilindros) |> 
  dplyr::filter(cilindros == 8)
## # A tibble: 70 × 1
##    cilindros
##        <int>
##  1         8
##  2         8
##  3         8
##  4         8
##  5         8
##  6         8
##  7         8
##  8         8
##  9         8
## 10         8
## # ℹ 60 more rows

4.1.11.2 Selecionar los diamantes mayor de 3 quilate

diamantes |> dplyr::select(quilate) |> 
  filter(quilate > 3)
## # A tibble: 32 × 1
##    quilate
##      <dbl>
##  1    3.01
##  2    3.11
##  3    3.01
##  4    3.05
##  5    3.02
##  6    3.01
##  7    3.65
##  8    3.24
##  9    3.22
## 10    3.5 
## # ℹ 22 more rows

4.1.11.3 Selecionar los diamantes con igual o mayor de 4000 precio

## # A tibble: 6 × 1
##   precio
##    <int>
## 1   4000
## 2   4001
## 3   4001
## 4   4001
## 5   4001
## 6   4002

4.1.11.4 Contabiliza cuantos diamantes tienen un valor de $4000 o más

nrow(dia_4000) 
## [1] 19380