Import et traitement de données au format XML en langage R - ShangFR

黄舟
Libérer: 2017-02-25 13:59:56
original
2417 Les gens l'ont consulté

Analyse de données

XML est un langage de balisage extensible conçu pour transmettre et stocker des données. XML est l'outil le plus couramment utilisé pour le transfert de données entre diverses applications. Elle est différente des bases de données telles qu'Access, Oracle et SQL Server. La base de données offre des capacités de stockage et d'analyse de données plus puissantes, telles que l'indexation des données, le tri, la recherche, la cohérence de la corrélation, etc. Elle stocke simplement les données . En fait, la plus grande différence entre cette représentation et les autres représentations de données est qu’elle est extrêmement simple. Il s’agit d’un avantage apparemment trivial, mais c’est ce qui la rend unique.

Pour les données au format XML, le package XML du langage R peut importer et traiter les données. Voir la description du cas ci-dessous pour plus de détails.

Cas 1

Saisissez directement un morceau de texte en langage de balisage et utilisez le package XML pour l'analyser.

library(XML)

tt =
  &#39;<x>
<a>text</a>
<b foo="1"/>
<c bar="me">
<d>a phrase</d>
</c>
</x>&#39;
doc = xmlParse(tt)
xmlToList(doc)
# use an R-level node representation
doc = xmlTreeParse(tt)
xmlToList(doc)
Copier après la connexion

Cas 2

Importez les données au format XML existantes et traitez-les. Ce cas utilise les données XML du carnet d'adresses du téléphone mobile. Suivez les étapes ci-dessous :

#读取xml格式数据并解析
xmlfile=xmlParse(file.choose(),encoding="UTF-8") 
class(xmlfile)

#形成根目录列表数据
xmltop = xmlRoot(xmlfile) 
class(xmltop) #查看类
xmlName(xmltop) #查看根目录名
xmlSize(xmltop) #查看根目录总数
xmlName(xmltop[[1]]) #查看子目录名

# 查看第一个子目录
xmltop[[1]]
# 查看第二个子目录
xmltop[[2]]

#子目录节点
xmlSize(xmltop[[1]]) #子目录节点数
xmlSApply(xmltop[[1]], xmlName) #子目录节点名
xmlSApply(xmltop[[1]], xmlAttrs) #子目录节点属性
xmlSApply(xmltop[[1]], xmlSize) #子目录节点大小

#查看第一个子目录的第一个节点
xmltop[[1]][[1]]
#查看第一个子目录的第二个节点
xmltop[[1]][[2]]

#第二个子目录
xmltop[[2]][[1]]
xmltop[[2]][[2]]

xmltop[[1]][[3]][[1]][[1]] #查看联系人电话
xmltop[[&#39;Contact&#39;]][[&#39;PhoneList&#39;]][[1]][[1]]  #第二种方式
getNodeSet(xmltop, "//Contact/PhoneList")[[1]][[1]][[1]] #第三种方式

xmltop[[1]][[3]][[1]][[1]] = 13717232323 #更改联系人电话
xmltop[[1]][[1]][[1]]= "zhangsan "#更改联系人姓名

#保存
saveXML(xmltop, file="out.xml",encoding="UTF-8")
Copier après la connexion

. format xml vers dataframe

Suivez les étapes suivantes :

xmlToDataFrame(xmlfile) #第一种方式,直接用xmlToDataFrame()函数

library("plyr") #第二种方式,数据格式处理专用包plyr

MyContact=ldply(xmlToList(file.choose()), data.frame) #先转成list,再转dataframe
View(MyContact)

# 查看联系方式
MyContact[,c("Name" ,"PhoneList.Phone.text")]

# 联系方式保存
write.csv(MyContact, "MyContact.csv", row.names=FALSE)
Copier après la connexion

Commentaires et suggestions

Ce qui précède est le contenu de l'importation et du traitement des données au format XML en langage R - ShangFR, pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal