数据解析

XML是一种可扩展标记语言,它被设计用来传输和存储数据。XML是各种应用程序之间进行数据传输的最常用的工具。它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,它仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:它极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。

针对XML格式数据,R语言XML包可以对其进行数据导入与处理,详见下面的案例说明。

案例1

直接输入一段标记语言文本,使用XML包解析。

library(XML)tt ='<x>
<a>text</a>
<b foo="1"/>
<c bar="me">
<d>a phrase</d>
</c>
</x>'
doc = xmlParse(tt)
xmlToList(doc)
# use an R-level node representation
doc = xmlTreeParse(tt)
xmlToList(doc)

案例2

导入已有的xml格式数据并处理,本案例用到的是手机通讯录xml数据,按如下步骤操作:

#读取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[['Contact']][['PhoneList']][[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格式转dataframe

按如下步骤操作:

xmlToDataFrame(xmlfile) #第一种方式,直接用xmlToDataFrame()函数library("plyr") #第二种方式,数据格式处理专用包plyrMyContact=ldply(xmlToList(file.choose()), data.frame) #先转成list,再转dataframe
View(MyContact)# 查看联系方式
MyContact[,c("Name" ,"PhoneList.Phone.text")]# 联系方式保存
write.csv(MyContact, "MyContact.csv", row.names=FALSE)

反馈与建议

  • 作者:ShangFR
  • 邮箱:shangfr@foxmail.com

转载于:https://www.cnblogs.com/shangfr/p/5564167.html

R语言XML格式数据导入与处理相关推荐

  1. R语言入门第二集 实验一:R 语言数据结构、数据导入与数据处理

    R语言入门第二集 实验一:R 语言数据结构.数据导入与数据处理 一.资源 R语言基本数据结构练习和数据的导入和处理对象常用函数练习--东北大学大数据班R语言实训第一次作业" R(4)求解数据 ...

  2. R语言1----Excel格式数据的导入

    R语言1--Excel格式数据的导入 1. 在R中添加程序包:程序包->添加程序包->xlxs 然后R中就添加了相应的程序包,可以进行使用了. 2. 添加Excel数据时经常会出现这样的问 ...

  3. R语言含中文数据导入的方法

    文章目录 写在前面 txt文本型数据的导入 xlsx表格型数据的导入 CSV逗号分隔符型数据的导入 写在前面 最近学习R语言,常常会遇到带有中文标签的数据,这时候进行处理的话,会出现数据显示不全,甚至 ...

  4. R语言把dataframe数据转化为tibble格式、查看每个数据列的缺失值个数、使用数据列的均值对数据列的缺失值进行填充

    R语言把dataframe数据转化为tibble格式.查看每个数据列的缺失值个数.使用数据列的均值对数据列的缺失值进行填充 目录

  5. Xml 格式数据的生成和解析

    相关阅读 XML约束 Xml 格式数据的生成和解析 XML解析器 什么是XML XML全称为Extensible Markup Language, 意思是可扩展的标记语言,它是 SGML(标准通用标记 ...

  6. xml python gb2312_使用Python处理XML格式数据的方法介绍

    本文实例讲述了Python处理XML格式数据的方法.分享给大家供大家参考,具体如下: 这里的操作是基于Python3平台. 在使用Python处理XML的问题上,首先遇到的是编码问题. Python并 ...

  7. 使用PHP生成和获取XML格式数据

    生成XML格式数据 假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE 'student ...

  8. R语言处理Web数据

    R语言处理Web数据 许多网站提供的数据,以供其用户的消费.例如,世界卫生组织(WHO)提供的CSV,TXT和XML文件的形式的健康和医疗信息报告.基于R程序,我们可以通过编程提取这些网站的具体数据. ...

  9. iOS开发之解析XML格式数据

    XML格式的数据是一种数据的传输格式.因为它方便编写.结构清晰,所以深受程序猿的喜爱,非常多人都喜欢使用XML格式数据传输或者作为程序的配置信息. 如今我将来实如今iOS中解析XML格式数据,语言使用 ...

最新文章

  1. 【Linux】修改/etc/fstab时参数设错,导致启动异常,无法进入系统(已解决)
  2. Hadoop平台日志结构
  3. 谈谈我对Promise的理解
  4. uva1152 - 4 Values whose Sum is 0(hash或STL技巧ac)
  5. memmove()/mmecpy()
  6. 一、人工智能数学基础——线性代数
  7. SAP License:自动创建带内部订单预算管控的在建工程
  8. sql azure 语法_如何:Azure中SQL Server文件快照备份
  9. 使用gdb调试当前运行的程序
  10. 为什么不能在字符串上使用switch语句?
  11. mapxtreme java 版本分布式部署。自己的应用和mapxtreme渲染器不在同一台机器上
  12. 【电力负荷预测】基于matlab GUI粒子群优化支持向量机短期电力负荷预测【含Matlab源码 751期】
  13. 中小学创客教室建设,教育创客空间整体解决方案
  14. 【板绘必读】完全0基础如何学板绘?
  15. 在别人电脑登录微信会【泄露隐私】,登录微信后一定要删除这个文件
  16. CST Studio Suite 2020 安装教程
  17. 数据分析项目: 链家房源分析
  18. 用c语言求解n阶线性矩阵方程组,求解N阶线性矩阵方程
  19. zoj 2576 Queen Collisions
  20. IPv6的DNS服务器

热门文章

  1. 【STM32】通用定时器(TIM2到TIM5)
  2. 【ARM】MRS MSR指令
  3. 密码可见_教你如何批量删除微博、设置仅自己可见、仅好友可见等
  4. Pixhawk飞控源码目录结构及编译流程分析
  5. HDU - 4461 The Power of Xiangqi
  6. fgets函数及其用法,C语言fgets函数详解
  7. mysql的binary、char、varchar区别
  8. rust windows 交叉编译_交叉编译问题,求指教
  9. Leetcode题库 11.盛水最多的容器(双指针法 C实现)
  10. 十大排序算法之选择排序