Skip to content

Commit

Permalink
Add 3 chapter of the bookdown
Browse files Browse the repository at this point in the history
  • Loading branch information
clobos committed Mar 16, 2023
1 parent e651a81 commit 7962496
Show file tree
Hide file tree
Showing 209 changed files with 8,112 additions and 0 deletions.
257 changes: 257 additions & 0 deletions 01_dplyr.RMD
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
# dplyr (60 minutos)

## Lista de funções do pacote dplyr

```{r}
ls("package:dplyr")
```


## Operador Pipe

```{r}
sqrt(log(44))
44 %>% log %>% sqrt
```

## select() para colunas

```{r}
select(dados, manufacturer, model, year)
select(dados, starts_with("m"))
select(dados, contains("r"))
select(dados, ends_with("y"))
select(dados, matches("[abc]"))
select(dados, starts_with("m"), starts_with("c"))
select(dados, ends_with("l"), ends_with("s"))
select(dados, 1:3)
select(dados, c(2,5,7))
select(dados, manufacturer:cyl)
select(dados,-(manufacturer:cyl))
```


## rename()

```{r}
dados1 <- rename(dados,
mnfc = manufacturer,
mod = model)
dados1
select(dados,
mnfc = manufacturer,
mod = model)
select(dados,
mnfc = manufacturer,
mod = model,
everything())
```

## mutate() para colunas

```{r}
mutate(dados, sqrt_cty = sqrt(cty))
names(dados)
dados<- mutate(dados, sqrt_cty = sqrt(cty))
names(dados)
dados <- mutate(dados,
`soma de variáveis` = (cty + hwy) / 2)
names(dados)
dados <- mutate(dados,
car = paste(manufacturer, model, sep = " "),
`cyl / trans` = paste(cyl, " cylinders", " / ", trans, " transmission", sep = ""))
dados
```

## transmute()

```{r}
transmute(dados,
`avg miles per gallon` = (cty + hwy) / 2)
transmute(dados,
car = paste(manufacturer, model, sep = " "),
`cyl / trans` = paste(cyl, " cylinders", " / ", trans, " transmission", sep = ""))
```


## filter() para linhas

```{r}
filter(dados, manufacturer == "audi")
filter(dados, manufacturer == "audi" & year == "1999")
filter(dados, manufacturer == "audi", year == 1999)
filter(dados, manufacturer == "audi" | manufacturer == "dodge") %>%
print(n = 20)
filter(dados, manufacturer %in% c("audi", "dodge")) %>%
print(n = 20)
filter(dados, hwy >= 30) %>%
select(hwy) %>%
print(n = 26)
filter(dados, year != 1999) %>%
select(year) %>%
print(n = 30)
filter(dados, between(cty,15, 22))
```


## slice() para linhas

```{r}
slice(dados, 1:5)
# dados[1:5,]
slice(dados, 20:30)
# dados[20:30,]
```


## arrange() para linhas

```{r}
# ordenar "displ" de menor a maior
arrange(dados, displ)
arrange(dados, displ) %>%
print(n=20)
# ordenar "displ" de maior a menor
arrange(dados, desc(displ))
arrange(dados, desc(displ)) %>%
print(n=20)
select(dados, displ, cty) %>%
arrange(displ, cty) %>%
print(n = 20)
select(dados, displ, cty) %>%
arrange(displ, desc(cty)) %>%
print(n = 20)
```


## distinct() para linhas

```{r}
dados_exemplo <- data.frame(id = 1:3,
name = c("John", "Max", "Julia"))
dados_exemplo
# bind_rows == rbind()
dados_exemplo<- bind_rows(dados_exemplo, slice(dados_exemplo, 2))
dados_exemplo
distinct(dados_exemplo)
dados_exemplo2 <- data.frame(id = c(1,1,2),
name = c("John", "Max", "Julia"))
dados_exemplo2
distinct(dados_exemplo2)
dados_duplicados <- select(dados, manufacturer, model)
dados_duplicados
dados_nao_duplicados <- distinct(dados_duplicados)
dados_nao_duplicados
```

## summarise()

```{r}
summarise(dados, `média hwy` = mean(hwy))
summarise(dados,
`num. de dados` = n(),
`num. modelos` = n_distinct(model))
# levels(dados$model)
summarise(dados,
`mín. hwy` = min(hwy, na.rm = TRUE),
`mín. cty` = min(cty, na.rm = TRUE),
`máx. hwy` = max(hwy, na.rm = TRUE),
`máx. cty` = max(cty, na.rm = TRUE))
dados %>%
summarise_at(c("hwy", "cty"), list(min, max), na.rm = TRUE)
dados %>%
summarise_if(is.numeric, list(min, max), na.rm = TRUE)
dados %>%
summarise_if(is.numeric, min, na.rm = TRUE)
dados %>%
summarise_if(is.numeric, max, na.rm = TRUE)
Tiago<- function(dados){
sd(dados)/mean(dados)
}
dados %>%
summarise_if(is.numeric, Tiago)
```

## group_by()

```{r}
group_by(dados, manufacturer)
dados %>%
group_by(manufacturer) %>%
summarise(`num. carros` = n())
dados %>%
group_by(model) %>%
summarise(`média hwy` = mean(hwy),
`min. hwy` = min(hwy),
`max. hwy` = max(hwy))
```

## count()

```{r}
count(dados)
dados %>%
group_by(manufacturer) %>%
count()
# Equivalente com o código anterior
dados %>%
group_by(manufacturer) %>%
summarise(cars = n())
```

## sample_n()

```{r}
set.seed(567)
sample_n(dados, size = 10, replace = F)
sample_n(dados, size = 10, replace = T)
```

## sample_frac()

```{r}
sample_frac(dados, size = 0.1, replace = F)
```
Loading

0 comments on commit 7962496

Please sign in to comment.