R 语言 XML 文件
-
R 语言 XML 文件
XML是一种文件格式,它使用标准ASCII文本共享文件格式以及在Internet,Intranet和其他位置上的数据。它代表可扩展标记语言(XML)。与HTML相似,它包含标记标签。但是与HTML的markup标签描述页面结构不同,在xml中,markup标签描述文件中包含的数据的含义。您可以使用“XML”包读取R中的xml文件。可以使用以下命令安装此软件包。install.packages("XML")
-
输入数据
通过将以下数据复制到文本编辑器(如记事本)中来创建XMl文件。保存扩展名为.xml的文件,然后选择文件类型为所有文件(*.*)。<RECORDS> <EMPLOYEE> <ID>1</ID> <NAME>Rick</NAME> <SALARY>623.3</SALARY> <STARTDATE>1/1/2012</STARTDATE> <DEPT>IT</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>2</ID> <NAME>Dan</NAME> <SALARY>515.2</SALARY> <STARTDATE>9/23/2013</STARTDATE> <DEPT>Operations</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>3</ID> <NAME>Michelle</NAME> <SALARY>611</SALARY> <STARTDATE>11/15/2014</STARTDATE> <DEPT>IT</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>4</ID> <NAME>Ryan</NAME> <SALARY>729</SALARY> <STARTDATE>5/11/2014</STARTDATE> <DEPT>HR</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>5</ID> <NAME>Gary</NAME> <SALARY>843.25</SALARY> <STARTDATE>3/27/2015</STARTDATE> <DEPT>Finance</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>6</ID> <NAME>Nina</NAME> <SALARY>578</SALARY> <STARTDATE>5/21/2013</STARTDATE> <DEPT>IT</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>7</ID> <NAME>Simon</NAME> <SALARY>632.8</SALARY> <STARTDATE>7/30/2013</STARTDATE> <DEPT>Operations</DEPT> </EMPLOYEE> <EMPLOYEE> <ID>8</ID> <NAME>Guru</NAME> <SALARY>722.5</SALARY> <STARTDATE>6/17/2014</STARTDATE> <DEPT>Finance</DEPT> </EMPLOYEE> </RECORDS>
-
读取XML文件
R使用函数xmlParse()读取xml文件。它作为列表存储在R中。# 加载读取XML文件所需的包。 library("XML") # 同时加载其他必需的软件包。 library("methods") # 给函数输入文件名。 result <- xmlParse(file = "input.xml") # 打印结果。 print(result)
当我们执行以上代码时,它产生以下结果-1 Rick 623.3 1/1/2012 IT 2 Dan 515.2 9/23/2013 Operations 3 Michelle 611 11/15/2014 IT 4 Ryan 729 5/11/2014 HR 5 Gary 843.25 3/27/2015 Finance 6 Nina 578 5/21/2013 IT 7 Simon 632.8 7/30/2013 Operations 8 Guru 722.5 6/17/2014 Finance
获取XML文件中存在的节点数# 加载读取XML文件所需的软件包。 library("XML") library("methods") #给函数输入文件名。 result <- xmlParse(file = "input.xml") #从xml文件中提取根节点。 rootnode <- xmlRoot(result) # 查找根中的节点数。 rootsize <- xmlSize(rootnode) # 打印结果。 print(rootsize)
当我们执行以上代码时,它产生以下结果-output [1] 8
-
第一个节点的详细信息
让我们看一下解析文件的第一条记录。它将使我们对顶层节点中存在的各种元素有所了解。# 加载读取XML文件所需的软件包。 library("XML") library("methods") # 给函数输入文件名。 result <- xmlParse(file = "input.xml") # 从xml文件中提取根节点。 rootnode <- xmlRoot(result) # 打印结果。 print(rootnode[1])
当我们执行以上代码时,它产生以下结果-$EMPLOYEE 1 Rick 623.3 1/1/2012 IT attr(,"class") [1] "XMLInternalNodeList" "XMLNodeList"
获取节点的不同元素# 加载读取XML文件所需的软件包。 library("XML") library("methods") # 给函数输入文件名。 result <- xmlParse(file = "input.xml") # 从xml文件中提取根节点。 rootnode <- xmlRoot(result) #获取第一个节点的第一个元素。 print(rootnode[[1]][[1]]) # 获取第一个节点的第五个元素。 print(rootnode[[1]][[5]]) # 获取第三个节点的第二个元素。 print(rootnode[[3]][[2]])
当我们执行以上代码时,它产生以下结果-1 IT Michelle
-
XML到数据帧
为了有效地处理大型文件中的数据,我们将xml文件中的数据作为数据帧读取。然后处理数据框以进行数据分析。# 加载读取XML文件所需的软件包。 library("XML") library("methods") # 将输入的xml文件转换为数据框。 xmldataframe <- xmlToDataFrame("input.xml") print(xmldataframe)
当我们执行以上代码时,它产生以下结果-ID NAME SALARY STARTDATE DEPT 1 1 Rick 623.30 2012-01-01 IT 2 2 Dan 515.20 2013-09-23 Operations 3 3 Michelle 611.00 2014-11-15 IT 4 4 Ryan 729.00 2014-05-11 HR 5 NA Gary 843.25 2015-03-27 Finance 6 6 Nina 578.00 2013-05-21 IT 7 7 Simon 632.80 2013-07-30 Operations 8 8 Guru 722.50 2014-06-17 Finance
由于现在可以将数据用作数据框,因此我们可以使用与数据框相关的功能来读取和操作文件。