Heim  >  Artikel  >  Backend-Entwicklung  >  Datenimport und -verarbeitung im R-Sprach-XML-Format – ShangFR

Datenimport und -verarbeitung im R-Sprach-XML-Format – ShangFR

黄舟
黄舟Original
2017-02-25 13:59:562403Durchsuche

Datenanalyse

XML ist eine erweiterbare Auszeichnungssprache, die zum Übertragen und Speichern von Daten entwickelt wurde. XML ist das am häufigsten verwendete Werkzeug für den Datentransfer zwischen verschiedenen Anwendungen. Sie unterscheidet sich von Datenbanken wie Access, Oracle und SQL Server. Die Datenbank bietet leistungsfähigere Datenspeicher- und Analysefunktionen wie Datenindizierung, Sortierung, Suche, Korrelationskonsistenz usw. Sie speichert Daten. Tatsächlich besteht der größte Unterschied zu anderen Datendarstellungen darin, dass sie äußerst einfach ist. Dies ist ein scheinbar trivialer Vorteil, der sie jedoch einzigartig macht.

Für Daten im XML-Format kann das R-Sprach-XML-Paket Daten importieren und verarbeiten. Weitere Informationen finden Sie in der Fallbeschreibung unten.

Fall 1

Geben Sie direkt einen Text in der Auszeichnungssprache ein und verwenden Sie das XML-Paket, um ihn zu analysieren.

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)

Fall 2

Importieren Sie vorhandene XML-Formatdaten und verarbeiten Sie sie. In diesem Fall werden XML-Daten aus dem Mobiltelefonadressbuch verwendet. Führen Sie die folgenden Schritte aus:

#读取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")

XML-Format in Datenrahmen

Folgen Sie den folgenden Schritten:

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)

Feedback und Vorschläge

Das Obige ist der Inhalt des Datenimports und der Verarbeitung im R-Sprach-XML-Format - ShangFR , Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn