Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Filtrado, limpieza y graficado de base de datos

Clase 7. En esta clase aprederemos a utilizar el paquete Tidyverse para la limpieza y filtrado de datos.
Cargar paquetes necesarios

library(tidyverse)

## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --

## v ggplot2 3.3.3 v purrr 0.3.4


## v tibble 3.0.6 v dplyr 1.0.4
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.1

## -- Conflicts ------------------------------------------ tidyverse_conflicts() --


## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()

Cargar base de datos

canechos <- read_csv("crabs.csv")

##
## -- Column specification --------------------------------------------------------
## cols(
## day = col_double(),
## trap = col_double(),
## sex = col_character(),
## diameter = col_double(),
## pincers = col_double(),
## legs = col_double(),
## ‘time day‘ = col_character(),
## ‘length deployed (min)‘ = col_double(),
## crabbing = col_character(),
## location = col_character(),
## source = col_character(),
## bait = col_character(),
## device = col_character(),
## comments = col_character()
## )

Seleccionar variables

1
Cane1 <- select(canechos, day:legs, crabbing:device)

Filtrar Variables

Cane2 <- filter(Cane1, sex == "female" | sex== "male")

Eliminar NA

data <- filter(Cane1, !is.na(sex)| !is.na(crabbing))

data <- filter(Cane1, !is.na(sex), !is.na(crabbing))

data <- filter(Cane1, !is.na(sex))

Renombrar NA

Cane1$sex[is.na(Cane1$sex)]<- "des"

Renombrar observaciones a NA

Cane1$diameter[Cane1$diameter == "0"] <- "NA"

Cambiar nombres de elementos

Cane3 <- mutate(Cane2, sex = fct_recode(sex,


"macho" = "male",
"hembra" = "female"))

Renombrar variables

Cane4 <- rename(Cane3, sexo = sex)

Ejercicio con pipe

Cane <- canechos %>%


select(day:legs, crabbing:device)%>%
filter(sex == "female" | sex== "male") %>%
filter(!is.na(sex))%>%
mutate(sex = fct_recode(sex,
"macho" = "male",
"hembra" = "female"))%>%
rename(sexo = sex)

Tabla Resumen

Cane %>%
group_by(sexo)%>%
summarise(individuos = n())

2
## # A tibble: 2 x 2
## sexo individuos
## * <fct> <int>
## 1 hembra 1725
## 2 macho 755

Cane %>%
group_by(sexo, trap)%>%
summarise(individuos = n())

## ‘summarise()‘ has grouped output by ’sexo’. You can override using the ‘.groups‘ argument.

## # A tibble: 24 x 3
## # Groups: sexo [2]
## sexo trap individuos
## <fct> <dbl> <int>
## 1 hembra 1 579
## 2 hembra 2 186
## 3 hembra 3 302
## 4 hembra 4 136
## 5 hembra 5 155
## 6 hembra 6 191
## 7 hembra 7 84
## 8 hembra 8 42
## 9 hembra 9 13
## 10 hembra 10 8
## # ... with 14 more rows

Tabla <- Cane %>%


group_by(sexo, location)%>%
summarise(mediaDiametro = mean(diameter),
es = sd(diameter)/sqrt(n()))

## ‘summarise()‘ has grouped output by ’sexo’. You can override using the ‘.groups‘ argument.

Grafico 1

ggplot(Tabla, aes(sexo, mediaDiametro, color= location))+


geom_bar(stat = "identity", position = "dodge")+
geom_errorbar(aes(ymin= mediaDiametro - es,
ymax= mediaDiametro +es,
width = 0.9),
position = "dodge")

3
50

40
mediaDiametro

30 location
control
cromer

20 harbour

10

hembra macho
sexo

Grafico 2

ggplot(Tabla, aes(sexo, mediaDiametro, shape= location))+


geom_errorbar(aes(ymin= mediaDiametro - es,
ymax= mediaDiametro +es,
width = 0.4))+
geom_point()

4
50

45
mediaDiametro

location
control
40
cromer
harbour

35

30

hembra macho
sexo

You might also like