Instalar la librería dslabs y accesar a la base de datos de murders
#install.packages("dslabs")
library(dslabs)
## Warning: package 'dslabs' was built under R version 4.2.2
data(murders)
str(murders)
## 'data.frame': 51 obs. of 5 variables:
## $ state : chr "Alabama" "Alaska" "Arizona" "Arkansas" ...
## $ abb : chr "AL" "AK" "AZ" "AR" ...
## $ region : Factor w/ 4 levels "Northeast","South",..: 2 4 4 2 4 4 1 2 2 2 ...
## $ population: num 4779736 710231 6392017 2915918 37253956 ...
## $ total : num 135 19 232 93 1257 ...
names(murders)
## [1] "state" "abb" "region" "population" "total"
summary(murders)
## state abb region population
## Length:51 Length:51 Northeast : 9 Min. : 563626
## Class :character Class :character South :17 1st Qu.: 1696962
## Mode :character Mode :character North Central:12 Median : 4339367
## West :13 Mean : 6075769
## 3rd Qu.: 6636084
## Max. :37253956
## total
## Min. : 2.0
## 1st Qu.: 24.5
## Median : 97.0
## Mean : 184.4
## 3rd Qu.: 268.0
## Max. :1257.0
length(murders)
## [1] 5
head(murders)
## state abb region population total
## 1 Alabama AL South 4779736 135
## 2 Alaska AK West 710231 19
## 3 Arizona AZ West 6392017 232
## 4 Arkansas AR South 2915918 93
## 5 California CA West 37253956 1257
## 6 Colorado CO West 5029196 65
Instalar el paquete dplyr
#install.packages("dplyr")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data("murders")
Ahora vamos a usar la función mutate, puede agregar o modificar una columna (variable).
murders<-mutate(murders,rate=total/population*100000)
Ahora usar la función FILTER, nos filtra la información. En este caso filtra los estados más “seguros”.
filter(murders,rate<=0.71)
## state abb region population total rate
## 1 Hawaii HI West 1360301 7 0.5145920
## 2 Iowa IA North Central 3046355 21 0.6893484
## 3 New Hampshire NH Northeast 1316470 5 0.3798036
## 4 North Dakota ND North Central 672591 4 0.5947151
## 5 Vermont VT Northeast 625741 2 0.3196211
En este caso el siguiente filtro nos muestra los estados con el rate más alto, es decir los más “inseguros” en términos per cápita.
filter(murders,rate>=5)
## state abb region population total rate
## 1 District of Columbia DC South 601723 99 16.452753
## 2 Louisiana LA South 4533372 351 7.742581
## 3 Maryland MD South 5773552 293 5.074866
## 4 Missouri MO North Central 5988927 321 5.359892
Usar la función select, vamos a seleccionar algunas columnas (variables) de la base de datos que estamos analizando.
new_table<-select(murders, state, region,rate)
filter(new_table,rate<=0.71)
## state region rate
## 1 Hawaii West 0.5145920
## 2 Iowa North Central 0.6893484
## 3 New Hampshire Northeast 0.3798036
## 4 North Dakota North Central 0.5947151
## 5 Vermont Northeast 0.3196211
Uso del operador pipe %>% , con esta función evitamos crear una tabla alterna (new_table). Es más directo la selección y el filtrado.
murders %>% select(state,region,rate) %>% filter(rate<=0.71)
## state region rate
## 1 Hawaii West 0.5145920
## 2 Iowa North Central 0.6893484
## 3 New Hampshire Northeast 0.3798036
## 4 North Dakota North Central 0.5947151
## 5 Vermont Northeast 0.3196211
Referencias bibliográficas Irizarry Rafael (2021) Introducción a la ciencia de datos. Análisis de datos y algoritmos de predicción con R. Harvard. MA EEUU.