Code
source (here:: here ("_rinit.R" ))
source (here:: here ("data" , "paris" , "_paris.R" )) # wkb2sfc(), paris_basemap(), arrondissements_sf()
invisible (Sys.setlocale ("LC_TIME" , "fr_FR.UTF-8" ))
# cd ~/iCloud/website/data/paris; /usr/local/bin/R -e 'quarto::quarto_render("liste-des-ehpad.qmd")'
knitr:: opts_chunk$ set (echo = TRUE , message = FALSE , warning = FALSE ,
fig.width = 8 , fig.height = 5 , dpi = 150 )
ehpad_path <- here:: here ("data" , "paris" , "liste-des-ehpad.parquet" )
ehpad <- arrow:: read_parquet (ehpad_path) |>
dplyr:: mutate (
image_url = purrr:: map_chr (image, \(x) {
j <- tryCatch (jsonlite:: fromJSON (x), error = function (e) NULL )
if (is.null (j) || is.null (j$ url)) NA_character_ else j$ url
}),
intra_muros = ville == "Paris"
)
n_tot <- nrow (ehpad)
pts_sf <- ehpad |>
dplyr:: mutate (geometry = wkb2sfc (coordonnees)) |>
sf:: st_as_sf (crs = 4326 )
Les 15 EHPAD (établissements d’hébergement pour personnes âgées dépendantes) gérés directement par le CASVP (Centre d’Action Sociale de la Ville de Paris). 5 d’entre eux sont situés hors Paris intra-muros — le CASVP gère aussi des maisons de retraite en proche et moyenne couronne, jusqu’à Villers-Cotterêts (Aisne), à 80 km de Paris.
Code
ehpad |>
dplyr:: arrange (ville, nom_de_l_ehpad) |>
dplyr:: transmute (
Photo = ifelse (is.na (image_url), "" ,
sprintf ('<img src="%s" width="70" style="border-radius:.3rem">' , image_url)),
Nom = nom_de_l_ehpad, Adresse = adresse, Ville = ville,
CP = code_postal, ` Téléphone ` = telephone
) |>
reactable:: reactable (
searchable = TRUE ,
pagination = FALSE ,
compact = TRUE ,
resizable = TRUE ,
highlight = TRUE ,
wrap = TRUE ,
defaultColDef = reactable:: colDef (
align = "left" ,
headerStyle = list (fontWeight = "bold" ),
style = list (whiteSpace = "normal" , wordBreak = "break-word" )
),
columns = list (
Photo = reactable:: colDef (html = TRUE , sortable = FALSE , filterable = FALSE , width = 90 ),
Nom = reactable:: colDef (minWidth = 160 ),
Adresse = reactable:: colDef (minWidth = 200 ),
Ville = reactable:: colDef (minWidth = 100 , maxWidth = 160 ),
CP = reactable:: colDef (minWidth = 60 , maxWidth = 90 ),
` Téléphone ` = reactable:: colDef (minWidth = 110 , maxWidth = 140 )
)
)
Carte
Code
leaflet:: leaflet (pts_sf, options = leaflet:: leafletOptions (minZoom = 8 )) |>
paris_basemap () |>
leaflet:: addCircleMarkers (
radius = 7 , stroke = TRUE , color = "white" , weight = 1.5 ,
fillOpacity = 0.9 , fillColor = "#8a4fae" ,
label = ~ nom_de_l_ehpad,
popup = ~ sprintf ("<b>%s</b><br>%s<br>%s %s<br>%s" ,
nom_de_l_ehpad, adresse, code_postal, ville, telephone)
)
Source & données
Code
tibble:: tibble (
` ` = c ("Jeu de données" , "Producteur" , "Licence" , "Fichier" , "Mise à jour" , "Observations" ),
` ` = c (
"[Liste des EHPAD](https://opendata.paris.fr/explore/dataset/liste-des-ehpad/information/)" ,
"Centre d'Action Sociale de la Ville de Paris (CASVP)" ,
"Open Database License (ODbL)" ,
sprintf ("`data/paris/liste-des-ehpad.parquet` (%s ko)" , round (file.size (ehpad_path) / 1024 )),
format (as.Date (file.mtime (ehpad_path)), "%d %B %Y" ),
sprintf ("%d établissements" , n_tot)
)
) |>
gt:: gt () |> gt:: fmt_markdown (columns = ` ` ) |>
gt:: tab_options (table.width = "100%" , column_labels.hidden = TRUE )
Jeu de données
Liste des EHPAD
Producteur
Centre d’Action Sociale de la Ville de Paris (CASVP)
Licence
Open Database License (ODbL)
Fichier
data/paris/liste-des-ehpad.parquet (6 ko)
Mise à jour
04 septembre 2026
Observations
15 établissements