`valeursfoncieres-2015` %>%
mutate_at(vars(11,26,28,30,39,43), funs(as.numeric(gsub(",", ".", .)))) |>
filter(`Surface Carrez du 1er lot` != 0) |>
mutate(metre_carre = `Valeur fonciere` / `Surface Carrez du 1er lot`) |>
filter(!is.na(metre_carre),
# Valeurs mètre carré absurde
metre_carre < 50000,
metre_carre > 1000) |>
select(`Code postal`, `Commune`, `Code departement`, `Code commune`, metre_carre) |>
arrange(`Code postal`) |>
group_by(`Code postal`, `Commune`, `Code departement`, `Code commune`) |>
summarise(Nobs = n(),
metre_carre_mean = metre_carre |> mean() |> round(),
metre_carre_sd = metre_carre |> sd() |> round(),
metre_carre_max = metre_carre |> max() |> round(),
metre_carre_min = metre_carre |> min() |> round()) |>
filter(Nobs > 200) |>
arrange(-metre_carre_mean) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}