服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - R语言 - R语言操作XML文件实例分析

R语言操作XML文件实例分析

2022-01-17 15:25w3cschool R语言

在本篇文章里小编给大家整理的是一篇关于R语言操作XML文件实例分析,有兴趣的朋友们可以跟着学习下。

XML是一种文件格式,它使用标准ASCII文本共享万维网,内部网和其他地方的文件格式和数据。 它代表可扩展标记语言(XML)。 类似于HTML它包含标记标签。 但是与HTML中的标记标记描述页面的结构不同,在xml中,标记标记描述了包含在文件中的数据的含义。

您可以使用“XML”包读取R语言中的xml文件。 此软件包可以使用以下命令安装。

?
1
install.packages("XML")

输入数据

通过将以下数据复制到文本编辑器(如记事本)中来创建XMl文件。 使用.xml扩展名保存文件,并将文件类型选择为所有文件(*.*)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<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文件

xml文件由R语言使用函数xmlParse()读取。 它作为列表存储在R语言中。

?
1
2
3
4
5
6
7
8
9
10
11
# Load the package required to read XML files.
library("XML")
 
# Also load the other required package.
library("methods")
 
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
 
# Print the result.
print(result)

当我们执行上面的代码,它产生以下结果

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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文件中存在的节点数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Load the packages required to read XML files.
library("XML")
library("methods")
 
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
 
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
 
# Find number of nodes in the root.
rootsize <- xmlSize(rootnode)
 
# Print the result.
print(rootsize)

当我们执行上面的代码,它产生以下结果

?
1
2
output
[1] 8

第一个节点的详细信息

让我们看看解析文件的第一条记录。 它将给我们一个关于存在于顶层节点中的各种元素的想法。

?
1
2
3
4
5
6
7
8
9
10
11
12
# Load the packages required to read XML files.
library("XML")
library("methods")
 
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
 
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
 
# Print the result.
print(rootnode[1])

当我们执行上面的代码,它产生以下结果

?
1
2
3
4
5
6
7
8
9
10
$EMPLOYEE
  1
  Rick
  623.3
  1/1/2012
  IT
 
 
attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"

获取节点的不同元素

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Load the packages required to read XML files.
library("XML")
library("methods")
 
# Give the input file name to the function.
result <- xmlParse(file = "input.xml")
 
# Exract the root node form the xml file.
rootnode <- xmlRoot(result)
 
# Get the first element of the first node.
print(rootnode[[1]][[1]])
 
# Get the fifth element of the first node.
print(rootnode[[1]][[5]])
 
# Get the second element of the third node.
print(rootnode[[3]][[2]])

当我们执行上面的代码,它产生以下结果

?
1
2
3
1
IT
Michelle

XML到数据帧

为了在大文件中有效地处理数据,我们将xml文件中的数据作为数据框读取。 然后处理数据帧以进行数据分析。

?
1
2
3
4
5
6
7
# Load the packages required to read XML files.
library("XML")
library("methods")
 
# Convert the input xml file to a data frame.
xmldataframe <- xmlToDataFrame("input.xml")
print(xmldataframe)

当我们执行上面的代码,它产生以下结果

?
1
2
3
4
5
6
7
8
9
      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

由于数据现在可以作为数据帧,我们可以使用数据帧相关函数来读取和操作文件。

到此这篇关于R语言操作XML文件实例分析的文章就介绍到这了,更多相关R语言XML文件操作内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.w3cschool.cn/r/r_xml_files.html

延伸 · 阅读

精彩推荐
  • R语言R语言创建矩阵的实现方法

    R语言创建矩阵的实现方法

    这篇文章主要介绍了R语言创建矩阵的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    hjk_caesar9462021-12-27
  • R语言R语言中c()函数与paste()函数的区别说明

    R语言中c()函数与paste()函数的区别说明

    这篇文章主要介绍了R语言中c()函数与paste()函数的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    yiyu_j11152022-01-12
  • R语言R studio 批量注释的快捷方式

    R studio 批量注释的快捷方式

    这篇文章主要介绍了R studio 批量注释的快捷方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    JasonKQLin13342022-01-04
  • R语言R语言可视化存储矢量图实现方式

    R语言可视化存储矢量图实现方式

    这篇文章主要为大家介绍了R语言存储矢量图的实现方式过程,有需要的朋友可以借鉴参考下,希望能够有所你帮助,祝大家多多进步,早日升职加薪...

    Kanny广小隶9392022-01-20
  • R语言R语言编程学习绘制动态图实现示例

    R语言编程学习绘制动态图实现示例

    这篇文章主要介绍了R语言编程学习绘制动态图实现示例,有需要的的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    微小冷7652022-01-18
  • R语言R语言-使用ifelse进行数据分组

    R语言-使用ifelse进行数据分组

    这篇文章主要介绍了R语言-使用ifelse进行数据分组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    小力丸12042022-01-10
  • R语言聊聊R语言中Legend 函数的参数用法

    聊聊R语言中Legend 函数的参数用法

    这篇文章主要介绍了聊聊R语言中Legend 函数的参数用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Gavin姓陈6352021-12-28
  • R语言R语言绘制散点图实例分析

    R语言绘制散点图实例分析

    在本篇文章里小编给大家整理的是一篇关于R语言绘制散点图实例分析内容,有需要的朋友们可以学习下。...

    w3cschool6942022-01-06