- Al data.frame no le ocurre nada, group_by únicamente modifica las operaciones posteriores
- La única diferencia apreciable es la línea # Groups: sex [5]
- 5 grupos
-
Solución
starwars %>% group_by(sex) %>% summarize(n = n())
-
Solución
count(starwars, sex)
-
Devuelve todo NAs ya que las columnas tienen NA
-
Se pueden pasar como argumentos a continuación de la lista de funciones
-
Solución:
library(dplyr) summarize(starwars, across(c(height, mass, birth_year), list(min = min, max = max, mean = mean), na.rm = TRUE))
library(dplyr)
starwars %>%
group_by(sex) %>%
summarize(across(c(height, mass, birth_year),
list(min = min, max = max, mean = mean),
na.rm = TRUE),
n = n())
-
Solución
library(dplyr) full_join(band_members, band_instruments2, by = c("name" = "artist"))
-
Si, porque hay valores de los dos data.frames que no tienen correspondencia en el otro
Hay muchos más usuarios con abono anual que ocasionales, por lo que si no hacemos que las escalas sean independientes no se ve el patrón de los usuarios ocasionales.
library(readxl)
library(tidyr)
library(ggplot2)
bicis <- read_excel('./data/bicis_usos_acumulado.xls',
sheet = "Usos mar 2020",
range = "A3:E34")
# apartado 1
bicis_long <- bicis %>%
pivot_longer(starts_with("Usos"),
names_to = "Tipo_uso",
values_to = "Usos")
# apartado 2
ggplot(bicis_long, aes(x = DIA, y = Usos, fill = `Tipo de día`)) +
geom_col() +
facet_wrap(~ Tipo_uso, ncol = 1, scales = "free_y")
dia17_10000 <- bicis %>%
slice(17) %>%
mutate(y = 10000)
ggplot(bicis_long, aes(x = DIA, y = Usos)) +
geom_col() +
geom_vline(data = slice(bicis, 16), aes(xintercept = DIA), linetype = "dashed") +
# veremos una forma mas sencilla de hacer esto con lubridate
geom_text(data = dia17_10000, aes(x = DIA, y = y),
label = "Cierre BiciMAD\npor estado de alarma",
hjust = "left") +
labs(x = "Día", y = "Número total de usos")
ggplot(bicis_long, aes(x = DIA, y = Usos, fill = `Tipo de día`)) +
geom_col() +
facet_wrap(~ Tipo_uso, ncol = 1, scales = "free_y") +
scale_fill_brewer(palette = "Dark2") +
theme(legend.position = "top")