J’ai trouvé un sujet pour ma première contribution à ce forum !
Vous m’avez mis le doute hier en me disant que R c’était pas connu et que j’avais l’air d’une groupie (hihi c’est pas vrai, mais avouez, vous l’avez un peu pensé).
Bon, je ne sais pas quelles sont les sources fiables pour ce genre de choses alors je mets plusieurs liens :
Loin de moi de vouloir comparer aux autres langages et tout, je suis moi-même surprise qu’il ressortent dans le top 10 et même avant certains de vos langages préférés !
C’est marrant du coup parce que je pense que les communautés informaticien(ne)s/programmeur(se)s/A♥/etc. et statisticien(ne)s/data scientists ne recoupent que très peu. Mais comme j’adore tisser des ponts entre les gens et disciplines, ça me rend encore plus heureuse de vous connaître.
Pour la prochaine Instalali, on t’invite à nous présenter ce langage dans le cadre d’une mini-conf.
Du peu que j’ai vu, R semble être un langage très expressif et en peu de lignes, on peut réaliser des choses formidables. Bref, je suis intéressé…
S’il n’est pas si populaire parmis les libriste, c’est peut-etre parce qu’il y a encore peu d’applications libres connues qui l’emploient? Ou peut-etre parce qu’il est assez difficile à maitriser?
Quoi qu’il en soit, il semble que nous ayons encore beaucoup à apprendre sur le sujet. Je +1 la proposition de @pvincent. Il faudrait combler nos lacunes!
C’est même étonnant qu’un langage aussi spécialisé se place avant Go ou Ruby…
Pas du tout il est même assez intuitif. Il n’est pas très connu comme langage généraliste car (à ma connaissance) il n’a pas de librairie d’environnement graphique donc on ne peut pas utiliser de widgets (fenêtres, boutons, etc…). C’est tout en texte. Par contre on peut produire de beaux graphiques :
library(lattice)
y <- x <- seq(-5, 5, length= 100)
z <- outer(x, y, function(x,y){return(cos(x^2+y^2)/(1+x^2+y^2))})
wireframe(z, drape=T, col.regions=rainbow(100),xlab="x",ylab="y",lwd=0.5)
Créer des widgets je voulais dire, c’est à dire donner une interface graphique à ton programme R avec fenêtre, liste déroulante, champ de saisie, entrée, etc… comme les librairies GTK et Qt pour les autres langages de programmation.
Mais oups j’aurais peut-être du tourner sept fois ma langue sur mon clavier car il semble que ça existe :
Si on va plus loin que la présentation, on pourrait l’appliquer dans un projet libre et collectif de visualisation de data. Je rêverais d’organiser un hackaton à la raffinerie
Pour le projet, ca serait bien de trouver un naf’R qui serve l’intérêt commun
Ah ben oui, c’est évident maintenant que tu le dis
Où as-tu trouvé les données ? Tu as fait avec la fonction plot() de base ? J’ai le droit de faire ma version de la courbe ? Dis oui dis oui dis oui
Et la courbe rouge correspond à quoi exactement ?
La vraie question est : est-ce que ça vient des enfants asymptomatiques qui contaminent le reste de leur famille ou bien des gens qui viennent de l’extérieur en avion (ou même encore une autre raison) ? Dans le deuxième cas, c’est les avions qu’il faudrait supprimer, pas les vacances
Allez pour toi @harlock, une mini formation accélérée de ggplot !
# devtools::install_github("ATFutures/ical") # installer le package calendar, il n'est pas dans le CRAN
library(tidyverse)
library(calendar) # importer des fichier .ics (calendriers)
# import des données COVID
# source : "https://www.data.gouv.fr/fr/datasets/r/63352e38-d353-4b54-bfd1-f1b3ee1cabd7"
fichier <- "donnees-hospitalieres-covid19-2021-01-11-19h03.csv"
covid_974 <- read_csv2(fichier) %>% # importe (avec les dates comme il faut)
filter(dep == "974", sexe == 0) # sélectionne la RUN tout sexes confondus
# import des données des vacances scolaires à la Réunion
# source : "https://data.education.gouv.fr/explore/dataset/fr-en-calendrier-scolaire/download/?format=ics&disjunctive.description=true&disjunctive.location=true&disjunctive.zones=true&disjunctive.annee_scolaire=true&refine.location=R%C3%A9union&timezone=Europe/Paris&lang=fr"
vacances <- ic_read("fr-en-calendrier-scolaire.ics") %>%
filter(DTEND >= min(covid_974$jour), DTSTART <= max(covid_974$jour)) %>% # sélectionne les vacances correspondant aux dates du jeu de données covid_974
distinct(DTSTART, .keep_all = TRUE) # garde lignes avec des valeurs de DTSTART uniques (2 périodes se chevauchent - rentrée des profs vs. élèves)
# graphique
ggplot(covid_974) + # initialise le graphique
aes(x = jour, y = hosp) + # attribue un rôle aux variables de covid_974
geom_rect( # ajoute des rectangles bleus pour les vacances scolaires
data = vacances,
mapping = aes( # définit les rôles des variables du jeu de données vacances
xmin = as.Date(DTSTART), ymin = -Inf, # coins inférieurs gauches
xmax = as.Date(DTEND), ymax = Inf, # coins supérieurs droits
fill = "Vacances scolaires" # légende
),
inherit.aes = FALSE, # ne garde pas les rôles des variables de covid_974
alpha = 0.3
) +
geom_line(color = "darkgrey") + # ajoute la ligne grise avec les données brutes
geom_smooth( # ajoute la ligne rouge lissée
color = "red",
method = "loess",
formula = "y ~ x",
span = 0.05, # étendue du lissage
se = FALSE # pas de "ruban" de confiance
) +
scale_x_date( # modifie les paramètres par défaut de l'axe des x qui est de nature "date"
date_breaks = "month", # une graduation tous les mois
date_labels = "%b" # le label est le nom du mois en lettres abbrégé
) +
scale_fill_manual(values = "steelblue") + # choisi manuellement la couleur de remplissage
labs(
title = str_replace_all(fichier, pattern = "(-)|(.csv)", " "), # ajoute un titre (automatisé avec le nom du .csv)
x = NULL, # enlève le nom de l'axe x
y = "Nombre d'hospitalisations journalières", # modifie le nom de l'axe y
fill = NULL # enlève le titre de la légende pour le remplissage (fill)
) +
theme(legend.position = "bottom") # place la légence en bas du graphique
Je suis assez contente car j’ai réussi à automatiser pas mal de choses, notamment l’import des dates de vacances scolaires, le titre du graphique, la légende.
Cool! J’ai pas résisté, j’ai voulu regarder de plus près et faire joujou.
Alors sur Fedora, j’ai installé le paquet ‘R’, tout simplement, mais 600mb à telecharger tout de meme. Apres, j’ai adapté ma conf emacs avec ESS. Ensuite faire un nécessaire install.packages() de tidyverse & devtools: Ca, ca a prit 2 plombes (et 342mb)! Entre temps, il a fallu installer libgit2-devel pour satisfaire devtools.
Maintenant j’evalue jusqu’a:
> vacances <- ic_read("fr-en-calendrier-scolaire.ics") %>%
+ filter(DTEND >= min(covid_974$jour), DTSTART <= max(covid_974$jour)) %>% # sélectionne les vacances correspondant aux dates du jeu de données covid_974
+ distinct(DTSTART, .keep_all = TRUE) # garde lignes avec des valeurs de DTSTART uniques (2 périodes se chevauchent - rentrée des profs vs. élèves)
Error in 1:(line_first_event - 1) : NA/NaN argument