Guide débutant pour les fichiers JSON en R

Salut à toi, futur mage de R ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde des fichiers JSON et comment les manipuler en R. Ne t'inquiète pas si tu n'as jamais programmé auparavant – je serai ton guide bienveillant à travers cette aventure, tout comme j'ai été pour des centaines d'étudiants au fil des ans. Alors, plongeons dedans !

R - JSON Files

Qu'est-ce que le JSON ?

Avant de commencer, comprensons rapidement ce qu'est le JSON. JSON signifie JavaScript Object Notation. C'est un format de données léger, facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. Pense à cela comme une manière de stocker des informations de manière structurée et organisée – comme un très propre classeur numérique !

Installer le package rjson

Pour travailler avec des fichiers JSON en R, nous avons besoin d'un outil spécial. Dans le monde de R, nous appelons ces outils des "packages". Le package que nous allons utiliser s'appelle "rjson". Installons-le !

install.packages("rjson")
library(rjson)

Lorsque vous exécutez ces lignes, R ira sur Internet, téléchargera le package rjson, et le rendra prêt à être utilisé. C'est comme aller dans une boîte à outils numérique et choisir l'outil parfait pour notre travail !

Données d'entrée

Maintenant que nous avons notre outil, examinons quelques données. Imaginons que nous avons un fichier JSON appelé "students.json" contenant des informations sur certains étudiants. Il pourrait ressembler à quelque chose comme ça :

{
"students": [
{
"name": "Alice",
"age": 20,
"major": "Computer Science"
},
{
"name": "Bob",
"age": 22,
"major": "Mathematics"
},
{
"name": "Charlie",
"age": 21,
"major": "Physics"
}
]
}

Ce fichier JSON contient un tableau d'étudiants, où chaque étudiant a un nom, un âge et une majeure. C'est comme une petite base de données de notre classe !

Lire le fichier JSON

Maintenant, lisons ce fichier JSON dans R. Nous allons utiliser la fonction fromJSON() du package rjson :

json_data <- fromJSON(file = "students.json")

Cette ligne indique à R de lire le fichier "students.json" et de stocker son contenu dans une variable appelée json_data. C'est comme si nous versions le contenu de notre fichier JSON dans un conteneur dans R.

Voyons ce que nous avons :

print(json_data)

Vous devriez voir quelque chose comme ceci :

$students
$students[[1]]
$students[[1]]$name
[1] "Alice"

$students[[1]]$age
[1] 20

$students[[1]]$major
[1] "Computer Science"

$students[[2]]
$students[[2]]$name
[1] "Bob"

$students[[2]]$age
[1] 22

$students[[2]]$major
[1] "Mathematics"

$students[[3]]
$students[[3]]$name
[1] "Charlie"

$students[[3]]$age
[1] 21

$students[[3]]$major
[1] "Physics"

Félicitations ! Vous venez de lire votre premier fichier JSON dans R !

Convertir le JSON en data frame

Bien que les données JSON soient maintenant dans R, elles ne sont pas dans le format le plus pratique pour l'analyse. En R, nous préférons souvent travailler avec quelque chose appelé un "data frame". C'est comme une table ou un tableur. Convertissons nos données JSON en data frame :

students_df <- do.call(rbind, lapply(json_data$students, as.data.frame))

Whaou ! Ça fait un peu mal à la langue, n'est-ce pas ? Décomposons cela :

  1. json_data$students accède à la partie "students" de nos données JSON.
  2. lapply() applique la fonction as.data.frame() à chaque étudiant de la liste.
  3. do.call(rbind, ...) prend tous ces data frames individuels et les lie ensemble en un grand data frame.

Voyons notre nouveau data frame :

print(students_df)

Vous devriez voir quelque chose comme ceci :

name age           major
1   Alice  20 Computer Science
2     Bob  22     Mathematics
3 Charlie  21         Physics

Bien mieux ! Maintenant, nous avons une jolie table de données sur les étudiants.

Travailler avec le data frame

Maintenant que nous avons nos données dans un data frame, nous pouvons facilement effectuer diverses opérations dessus. Voici quelques exemples :

  1. Obtenir l'âge moyen des étudiants :
mean_age <- mean(students_df$age)
print(paste("L'âge moyen des étudiants est:", mean_age))
  1. Trouver tous les étudiants majeurant dans une matière spécifique :
cs_students <- students_df[students_df$major == "Computer Science", ]
print("Étudiants majeurant en informatique:")
print(cs_students)
  1. Ajouter une nouvelle colonne :
students_df$graduation_year <- 2023 + (22 - students_df$age)
print(students_df)

Conclusion

Et voilà ! Nous avons fait le voyage de l'installation d'un package, à la lecture d'un fichier JSON, en passant par la conversion en data frame et en effectuant quelques opérations de base. Vous avez fait vos premiers pas dans le monde de la manipulation des données en R !

N'oubliez pas, comme toute compétence, travailler avec JSON en R devient plus facile avec la pratique. N'ayez pas peur d'expérimenter et d'essayer de nouvelles choses. Qui sait ? La prochaine grande découverte de données pourrait être entre vos mains !

Voici un tableau résumant les principales fonctions que nous avons utilisées :

Fonction Package Description
install.packages() base R Installe un package
library() base R Charge un package
fromJSON() rjson Lit un fichier JSON
do.call() base R Construit et exécute un appel de fonction
rbind() base R Combine des objets R par lignes
lapply() base R Applique une fonction sur une liste ou un vecteur
as.data.frame() base R Convertit en data frame
mean() base R Calcule la moyenne arithmétique

Bonne programmation, et puissé vos données toujours être rangées !

Credits: Image by storyset