Fichiers XML R
XML signifie eXtensible Markup Language. XML est conçu pour transmettre et stocker des données.
Si vous n'êtes pas familier avec XML, vous pouvez d'abord vous référer à :Tutoriel XML
Pour lire et écrire des fichiers XML en R, vous devez installer un package d'extension. Vous pouvez saisir la commande suivante dans la console R pour l'installer :
install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/")
Vérifiez si l'installation a réussi :
> any(grepl("XML",installed.packages()))
[1] TRUE
Créez un fichier sites.xml. Placez le fichier xml dans le même répertoire que le script de test. Le code est le suivant :
Exemple
Ensuite, nous pouvons utiliser le package XML pour charger les données à partir du fichier XML :
Exemple
library("XML")
# Définir le nom du fichier
result <- xmlParse(file = "sites.xml")
# Afficher le résultat
print(result)
Compter la quantité de données XML :
Exemple
library("XML")
# Définir le nom du fichier
result <- xmlParse(file = "sites.xml")
# Extraire le nœud racine
rootnode <- xmlRoot(result)
# Compter la quantité de données
rootsize <- xmlSize(rootnode)
# Afficher le résultat
print(rootsize)
L'exécution du code ci-dessus produit le résultat suivant :
[1] 3
Pour afficher les données d'un nœud, pour une certaine ligne, utilisez[ ], pour la ligne et la colonne spécifiées, utilisez[[ ]]:
Exemple
library("XML")
# Définir le nom du fichier
result <- xmlParse(file = "sites.xml")
# Extraire le nœud racine
rootnode <- xmlRoot(result)
# Afficher les données du 2e nœud
print(rootnode[2])
# Afficher la 1re donnée du 2e nœud
print(rootnode[[2]][[1]])
# Afficher la 3e donnée du 2e nœud
print(rootnode[[2]][[3]])
L'exécution du code ci-dessus produit le résultat suivant :
$site <site> <id>2</id> <name>Example</name> <url>www.example.com</url> <likes>222</likes> </site> attr(,"class") [1] "XMLInternalNodeList" "XMLNodeList" <id>2</id> <url>www.example.com</url>
Convertir XML en une liste de données
La sortie du code ci-dessus est au format XML. Nous pouvons utiliser la fonction xmlToList() pour convertir les données du fichier en une liste, ce qui facilite la lecture :
Exemple
library("XML")
# Définir le nom du fichier
result <- xmlParse(file = "sites.xml")
# Convertir en liste
xml_data <- xmlToList(result)
print(xml_data)
print("============================")
# Afficher les données de la première ligne et de la deuxième colonne
print(xml_data[[1]][[2]])
L'exécution du code ci-dessus produit le résultat suivant :
$site $site$id [1] "1" $site$name [1] "Google" $site$url [1] "www.google.com" $site$likes [1] "111" $site $site$id [1] "2" $site$name [1] "Example" $site$url [1] "www.example.com" $site$likes [1] "222" $site $site$id [1] "3" $site$name [1] "Taobao" $site$url [1] "www.taobao.com" $site$likes [1] "333" [1] "============================" [1] "Google"
Convertir XML en data frame
Les données d'un fichier XML peuvent être converties en un type data frame, ce qui facilite la manipulation des données :
Exemple
library("XML")
# Convertir les données du fichier XML en data frame
xmldataframe <- xmlToDataFrame("sites.xml")
print(xmldataframe)
L'exécution du code ci-dessus produit le résultat suivant :
id name url likes 1 1 Google www.google.com 111 2 2 Example www.example.com 222 3 3 Taobao www.taobao.com 333Autres extensions