xlab = "Gross Domestic Product (per capite)",
ylab = "Life Expectancy (years)")
gap_last |>
filter(continent == "Europe") |>
ggplot() +
aes(x = gdpPercap, y = lifeExp) +
geom_point() +
labs(title = "Scatterplot gdpPercap vs lifeExp",
xlab = "Gross Domestic Product (per capite)",
ylab = "Life Expectancy (years)")
gap_last |>
filter(continent == "Europe") |>
ggplot() +
aes(x = gdpPercap, y = lifeExp) +
geom_point() +
labs(title = "Scatterplot gdpPercap vs lifeExp",
x = "Gross Domestic Product (per capite)",
y = "Life Expectancy (years)")
#| message: false
library(gapminder)
library(tidyverse)
gap_last <- gapminder |> filter(year == 2007, continent != "Oceania")
gap_last |>
filter(continent == "Europe") |>
ggplot() +
aes(x = gdpPercap, y = lifeExp) +
geom_point() +
labs(title = "Scatterplot gdpPercap vs lifeExp",
x = "Gross Domestic Product (per capite)",
y = "Life Expectancy (years)")
ojs_define(gap_last = gap_last |> purrr::transpose())
log(10, 2)
log(x = 10, base = 2)
log(x = 10)
median
class(median)
mode(median)
# vettore di lunghezza dispari
x <- c(10, 30, 3, 5, 20, 30, 100)
# ordino il vettore
sort(x)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
x_ord[pos_med]
# vettore di lunghezza dispari
x <- c(10, 30, 3, 5, 20, 30, 100, 20, 15)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
x_ord[pos_med]
# vettore di lunghezza dispari
x <- c(10, 30, 3, 5, 20, 30, 100, 18, 15)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
x_ord[pos_med]
# testata della funzione
nome_funzione <- function(x){
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
# testata della funzione
mediana_dispari <- function(x){
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
mode(mediana_dispari)
mediana_dispari
mediana_dispari(c(1, 2, 5, 4, 3))
mediana_dispari(x = c(1, 2, 5, 4, 3))
out <- mediana_dispari(c(1, 2, 5, 4, 3))
# testata della funzione
mediana_dispari <- function(x){
print("---- Contenuto oggetto x ---")
print(x)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
# vettore di lunghezza dispari
x <- c(10, 30, 3, 5, 20, 30, 100, 18, 15)
mediana_dispari(x)
mediana_dispari(x = x)
mediana_dispari(c(1, 2, 5, 4, 3))
# testata della funzione
mediana_dispari <- function(x){
prin("---- Contenuto oggetto x ---")
print(x)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
mediana_dispari(c(1, 2, 5, 4, 3))
# testata della funzione
mediana_dispari <- function(x){
print("---- Contenuto oggetto x ---")
print(x)
# ordino il vettore
#  x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
# testata della funzione
mediana_dispari <- function(x){
#  print("---- Contenuto oggetto x ---")
#  print(x)
# ordino il vettore
#  x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
mediana_dispari(c(1, 2, 3, 4, 5))
# testata della funzione
mediana_dispari <- function(x){
#  print("---- Contenuto oggetto x ---")
#  print(x)
# ordino il vettore
#  x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
mediana_dispari(c(1, 2, 3, 4, 5))
median(c(1, 2, 3, 4, 5))
mediana_dispari(c(1, 2, 30, 4, 5))
median(c(1, 2, 30, 4, 5))
# testata della funzione
mediana_dispari <- function(x){
#  print("---- Contenuto oggetto x ---")
#  print(x)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
mediana_dispari(c(1, 2, 30, 4, 5))
median(c(1, 2, 30, 4, 5))
# testata della funzione
mediana_dispari <- function(x){
#  print("---- Contenuto oggetto x ---")
#  print(x)
# ordino il vettore
x_ord <- sort(x)
# posizione della mediana con n dispari (n + 1)/2
n <- length(x)
pos_med <- (n + 1) / 2
med <- x_ord[pos_med]
# output funzione
# (ultima espressione non assegnata oppure sfruttando return)
return(med)
}
mediana_dispari(c(1, 2, 30, 4, 5))
median(c(1, 2, 30, 4, 5))
mediana_dispari_bis <- function(x){
n <- length(x)
return(sort(x)[(n + 1)/2])
}
mediana_dispari_bis(c(1, 2, 30, 4, 5))
mediana_dispari_bis <- function(x)
return(sort(x)[(length(x) + 1)/2])
mediana_dispari_bis(c(1, 2, 30, 4, 5))
mediana_dispari_bis <- function(x)
sort(x)[(length(x) + 1)/2]
mediana_dispari_bis(c(1, 2, 30, 4, 5))
5 / 2
6 / 2
6 \ 2
6 %% 2
7 %% 2
mediana_home <- function(x){
# calcola la lunghezza del vettore
n <- length(x)
# ordino il vettore
x_ord <- sort(x)
# calcolo la mediana
if((n %% 2) != 0){
# se n è dispari: il valore alla pos. (n + 1) / 2
out <- x_ord[(n + 1) / 2]
}
else{
# se n è pari:
#   la media dei valori alle pos. n/2 e alla pos. successiva
out <- x_ord[n / 2] + x_ord[(n / 2 + 1)]
}
# restituisco in output la mediana
return(out)
}
mediana_home(c(10, 2, 30, 4, 50))
mediana_home(c(10, 2, 30, 4, 50, 6))
mediana_home <- function(x){
# calcola la lunghezza del vettore
n <- length(x)
# ordino il vettore
x_ord <- sort(x)
# calcolo la mediana
if((n %% 2) != 0){
# se n è dispari: il valore alla pos. (n + 1) / 2
out <- x_ord[(n + 1) / 2]
}
else{
# se n è pari:
#   la media dei valori alle pos. n/2 e alla pos. successiva
out <- (x_ord[n / 2] + x_ord[(n / 2 + 1)]) / 2
}
# restituisco in output la mediana
return(out)
}
mediana_home(c(10, 2, 30, 4, 50, 6))
mediana_home(c(10, 2, 30, 4, 50, 6, NA))
sort(c(10, 2, 30, 4, 50, 6, NA))
mediana_home <- function(x){
# calcola la lunghezza del vettore
n <- length(x)
# ordino il vettore
x_ord <- sort(x)
# calcolo la mediana
if((n %% 2) != 0){
# se n è dispari: il valore alla pos. (n + 1) / 2
out <- x_ord[(n + 1) / 2]
}
else{
# se n è pari:
#   la media dei valori alle pos. n/2 e alla pos. successiva
out <- (x_ord[n / 2] + x_ord[(n / 2 + 1)]) / 2
}
# restituisco in output la mediana
return(out)
}
iris
library(tidyverse)
iris |>
select(-Species)
iris |>
select(where(is.numeric))
iris |>
select(where(is.numeric)) |>
summarise(across(everything(), .fns = mediana_home))
iris |>
select(where(is.numeric)) |>
summarise(across(everything(), .fns = median))
paesi <- c("Spain", "Italy", "Algeria", "Angola", "Cina", "India")
map(.x = paesi, .f = \(x) paste0("Paese: ", x))
out_uno <- map(.x = paesi, .f = function(x) paste0("Paese: ", x))
map(.x = paesi, .f = function(x) paste0("Paese: ", x))
map(.x = paesi, .f = function(x) {
paste0("Paese: ", x)
})
debugSource("~/Downloads/quarto-dashboard-example/funzione-mediana.R")
x <- c(10, 20, 30, 40, 50)
mediana_home(x = c(100, 300, 500, 400, 0))
x
mediana_home(x = c(100, 300, 500, 400, 0))
debugSource("~/Downloads/quarto-dashboard-example/funzione-mediana.R")
mediana_home(x = c(100, 300, 500, 400))
debugSource("~/Downloads/quarto-dashboard-example/funzione-mediana.R")
mediana_home(x = c(100, 300, 500, 400))
iris
mode(iris)
class(iris)
dim(iris)
length(iris)
library(tidyverse)
map(iris, length)
map(select(iris, -Species), median)
iris |>
select(where(is.numeri))
iris |>
select(where(is.numeric))
iris |>
select(where(is.numeric)) |>
summarise(across(everything(), median))
out_uno <- iris |>
select(where(is.numeric)) |>
summarise(across(everything(), median))
class(out_uno)
out_due <- map(select(iris, -Species), median)
class(out_due)
map(select(iris, -Species), median)
map_vec(select(iris, -Species), median)
class(map_vec(select(iris, -Species), median))
names(map_vec(select(iris, -Species), median))
map_df(select(iris, -Species), median)
map_dfc(select(iris, -Species), median)
map_dfr(select(iris, -Species), median)
getwd()
map(select(iris, -Species), hist)
walk(select(iris, -Species), hist)
walk(select(iris, -Species), hist, breaks = 5)
walk(select(iris, -Species), hist, break = 5)
walk(select(iris, -Species), hist, breaks = 5, col = "red")
walk(select(iris, -Species), function(el) (hist(el, col = "red", main = "walk")))
walk(select(iris, -Species),
\(el) (hist(el, col = "darkblue", breaks = 7, main = "walk")))
walk(select(iris, -Species),
~hist(., col = "red", main = "walk"))
names(iris)
str_replace(names(iris), pattern = ".", replacement = "_")
names(iris)
str_replace(names(iris), pattern = "\.", replacement = "_")
str_replace(names(iris), pattern = "[.]", replacement = "_")
paste("Ciao", "Pippo")
paste0("Ciao", "Pippo")
str_replace(names(iris), pattern = "[.]", replacement = "_")
paste0(str_replace(names(iris), pattern = "[.]", replacement = "_"), ".csv")
nomi_file <- paste0(str_replace(names(iris),
pattern = "[.]",
replacement = "_"), ".csv")
walk2(iris, nomi_file, \(x, y) write_csv(x, file = y))
walk2(iris, nomi_file, \(x, y) write_csv(data.frame(x), file = y))
library(readr)
Petal_Length <- read_csv("Petal_Length.csv")
View(Petal_Length)
walk2(iris, nomi_file, function(x, y) {
df <- data.frame(x)
colnames(df) <- y
write_csv(df, file = y)
})
walk2(iris, nomi_file, function(x, y) {
df <- data.frame(x)
colnames(df) <- str_remove(y, pattern = "[.csv]")
write_csv(df, file = y)
})
walk2(iris, nomi_file, function(x, y) {
df <- data.frame(x)
colnames(df) <- str_remove(y, pattern = ".csv")
write_csv(df, file = y)
})
walk2(iris, colnames(iris), function(x, y) {
df <- data.frame(x)
colnames(df) <- y
write_csv(df, file = paste0(y, ".csv"))
})
dir()
dir(pattern = "*.csv")
lista_tabelle <- map(dir(pattern = "*.csv"), read_csv)
lista_tabelle[[1]]
bind_cols(lista_tabelle)
lista_tabelle[[-5]]
lista_tabelle[-5]
map(lista_tabelle[-5], mean)
map(lista_tabelle[-5], colMeans)
map(lista_tabelle[-5], \(x) mean(x))
map(lista_tabelle[-5], \(x) mean(unlist(x)))
map(lista_tabelle[-5], \(x) sd(unlist(x)))
walk(c("Italy", "Spain", "France", "Austria"),
function(paese)
quarto_render(
input = "report-paese.qmd",
output_file = paste0(paese, ".html"),
execute_params = list(paese = paese, continente = "Europe")
))
library(quarto)
walk(c("Italy", "Spain", "France", "Austria"),
function(paese)
quarto_render(
input = "report-paese.qmd",
output_file = paste0(paese, ".html"),
execute_params = list(paese = paese, continente = "Europe")
))
gapminder::gapminder
gapminder::gapminder |>
distinct(paese)
gapminder::gapminder |> distinct(country)
gapminder::gapminder |> distinct(continent)
gapminder::gapminder |> select(country, continent)
gapminder::gapminder |> select(country, continent) |> unique()
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distint()
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distinct()
View(paesi_continenti)
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distinct() |>
slice(7)
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distinct() |>
slice_head(7)
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distinct() |>
slice_head(n = 7)
View(paesi_continenti)
map2(paesi_continenti$country,
paesi_continenti$continent,
\(x, y) paste(x, y))
walk2(paesi_continenti$country,
paesi_continenti$continent,
\(p, c)
quarto_render(
input = "report-paese.qmd",
output_file = paste0(p, ".html"),
execute_params = list(paese = p, continente = c)
))
paesi_continenti$country
walk2(paesi_continenti$country,
paesi_continenti$continent,
\(p, c)
quarto_render(
input = "report-paese.qmd",
output_file = paste0(p, ".html"),
execute_params = list(paese = p, continente = c)
))
# un insieme di report per continenti differenti --------------------------
paesi <- c("Spain", "Italy", "Algeria", "Angola", "Cina", "India")
continenti <- c("Europe", "Europe", "Africa", "Africa", "Asia", "Asia")
out_uno <- map(.x = paesi, .f = \(x) paste0("Paese: ", x))
# libreria per la programmazione funzionale -------------------------------
library(purrr)
# un insieme di report per continenti differenti --------------------------
paesi <- c("Spain", "Italy", "Algeria", "Angola", "Cina", "India")
continenti <- c("Europe", "Europe", "Africa", "Africa", "Asia", "Asia")
out_uno <- map(.x = paesi, .f = \(x) paste0("Paese: ", x))
out_uno
# compilazione di un singolo report ---------------------------------------
quarto_render(
input = "report-paese.qmd",
output_file = "Ghana.html",
execute_params = list(paese = "Ghana", continente = "Africa")
)
# libreria per compilare i report Quarto via codice -----------------------
library(quarto)
# compilazione di un singolo report ---------------------------------------
quarto_render(
input = "report-paese.qmd",
output_file = "Ghana.html",
execute_params = list(paese = "Ghana", continente = "Africa")
)
# un insieme di report per un singolo continente --------------------------
walk(c("Italy", "Spain", "France", "Austria"),
function(paese)
quarto_render(
input = "report-paese.qmd",
output_file = paste0(paese, ".html"),
execute_params = list(paese = paese, continente = "Europe")
))
# un insieme di report per un singolo continente --------------------------
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distinct() |>
slice_head(n = 7)
# librerie tidyverse ------------------------------------------------------
library(tidyverse)
# un insieme di report per un singolo continente --------------------------
paesi_continenti <- gapminder::gapminder |>
select(country, continent) |>
distinct() |>
slice_head(n = 7)
paesi_continenti
walk2(paesi_continenti$country,
paesi_continenti$continent,
\(p, c)
quarto_render(
input = "report-paese.qmd",
output_file = paste0(p, ".html"),
execute_params = list(paese = p, continente = c)
))
