zoukankan      html  css  js  c++  java
  • 如何从xml文件创建R语言数据框dataframe

    原文链接:http://tecdat.cn/?p=16788

    问题重现 

    软件:R语言

    环境:windows

    问题描述:我有一个XML文档文件。文件的一部分如下所示:

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <List>
    3.  
      <SubCategory>
    4.  
      <ID>BO</ID>
    5.  
      <Name>Bookcases</Name>
    6.  
      </SubCategory>
    7.  
      <SubCategory>
    8.  
      <ID>CH</ID>
    9.  
      <Name>Chairs</Name>
    10.  
      </SubCategory>
    11.  
      <SubCategory>
    12.  
      <ID>LA</ID>
    13.  
      <Name>Labels</Name>
    14.  
      </SubCategory>
    15.  
      <SubCategory>
    16.  
      <ID>TA</ID>
    17.  
      <Name>Tables</Name>
    18.  
      </SubCategory>
    19.  
      <SubCategory>
    20.  
      <ID>ST</ID>
    21.  
      <Name>Storage</Name>
    22.  
      </SubCategory>
    23.  
      <SubCategory>
    24.  
      <ID>FU</ID>
    25.  
      <Name>Furnishings</Name>
    26.  
      </SubCategory>
    27.  
      <SubCategory>
    28.  
      <ID>AR</ID>
    29.  
      <Name>Art</Name>
    30.  
      </SubCategory>
    31.  
      <SubCategory>
    32.  
      <ID>PH</ID>
    33.  
      <Name>Phones</Name>
    34.  
      </SubCategory>
    35.  
      <SubCategory>
    36.  
      <ID>BI</ID>
    37.  
      <Name>Binders</Name>
    38.  
      </SubCategory>
    39.  
      <SubCategory>
    40.  
      <ID>AP</ID>
    41.  
      <Name>Appliances</Name>
    42.  
      </SubCategory>
    43.  
      <SubCategory>
    44.  
      <ID>PA</ID>
    45.  
      <Name>Paper</Name>
    46.  
      </SubCategory>
    47.  
      <SubCategory>
    48.  
      <ID>AC</ID>
    49.  
      <Name>Accessories</Name>
    50.  
      </SubCategory>
    51.  
      <SubCategory>
    52.  
      <ID>EN</ID>
    53.  
      <Name>Envelopes</Name>
    54.  
      </SubCategory>
    55.  
      <SubCategory>
    56.  
      <ID>FA</ID>
    57.  
      <Name>Fasteners</Name>
    58.  
      </SubCategory>
    59.  
      <SubCategory>
    60.  
      <ID>SU</ID>
    61.  
      <Name>Supplies</Name>
    62.  
      </SubCategory>
    63.  
      <SubCategory>
    64.  
      <ID>MA</ID>
    65.  
      <Name>Machines</Name>
    66.  
      </SubCategory>
    67.  
      <SubCategory>
    68.  
      <ID>CO</ID>
    69.  
      <Name>Copiers</Name>
    70.  
      </SubCategory>
    71.  
      </List>

    从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。

    解决方案

    假设这是正确的taxlots.shp.xml文件:

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <List>
    3.  
      <SubCategory>
    4.  
      <ID>BO</ID>
    5.  
      <Name>Bookcases</Name>
    6.  
      </SubCategory>
    7.  
      <SubCategory>
    8.  
      <ID>CH</ID>
    9.  
      <Name>Chairs</Name>
    10.  
      </SubCategory>
    11.  
      <SubCategory>
    12.  
      <ID>LA</ID>
    13.  
      <Name>Labels</Name>
    14.  
      </SubCategory>
    15.  
      <SubCategory>
    16.  
      <ID>TA</ID>
    17.  
      <Name>Tables</Name>
    18.  
      </SubCategory>
    19.  
      <SubCategory>
    20.  
      <ID>ST</ID>
    21.  
      <Name>Storage</Name>
    22.  
      </SubCategory>
    23.  
      <SubCategory>
    24.  
      <ID>FU</ID>
    25.  
      <Name>Furnishings</Name>
    26.  
      </SubCategory>
    27.  
      <SubCategory>
    28.  
      <ID>AR</ID>
    29.  
      <Name>Art</Name>
    30.  
      </SubCategory>
    31.  
      <SubCategory>
    32.  
      <ID>PH</ID>
    33.  
      <Name>Phones</Name>
    34.  
      </SubCategory>
    35.  
      <SubCategory>
    36.  
      <ID>BI</ID>
    37.  
      <Name>Binders</Name>
    38.  
      </SubCategory>
    39.  
      <SubCategory>
    40.  
      <ID>AP</ID>
    41.  
      <Name>Appliances</Name>
    42.  
      </SubCategory>
    43.  
      <SubCategory>
    44.  
      <ID>PA</ID>
    45.  
      <Name>Paper</Name>
    46.  
      </SubCategory>
    47.  
      <SubCategory>
    48.  
      <ID>AC</ID>
    49.  
      <Name>Accessories</Name>
    50.  
      </SubCategory>
    51.  
      <SubCategory>
    52.  
      <ID>EN</ID>
    53.  
      <Name>Envelopes</Name>
    54.  
      </SubCategory>
    55.  
      <SubCategory>
    56.  
      <ID>FA</ID>
    57.  
      <Name>Fasteners</Name>
    58.  
      </SubCategory>
    59.  
      <SubCategory>
    60.  
      <ID>SU</ID>
    61.  
      <Name>Supplies</Name>
    62.  
      </SubCategory>
    63.  
      <SubCategory>
    64.  
      <ID>MA</ID>
    65.  
      <Name>Machines</Name>
    66.  
      </SubCategory>
    67.  
      <SubCategory>
    68.  
      <ID>CO</ID>
    69.  
      <Name>Copiers</Name>
    70.  
      </SubCategory>
    71.  
      </List>

    XML格式的数据很少以允许该xmlToDataFrame功能正常工作的方式进行组织。最好提取列表中的所有内容,然后将列表绑定到数据框中:

    1.  
      data <- xmlParse("ProductSubcategory.xml")
    2.  
       
    3.  
      xml_data <- xmlToList(data)
    4.  
       
    5.  
      dataDictionary <- xmlToDataFrame(getNodeSet(data,"//SubCategory"))


    最受欢迎的见解

    1.如何解决线性混合模型中畸形拟合(SINGULAR FIT)的问题

    2.在UBUNTU虚拟机上安装R软件包

    3.WINDOWS中用命令行执行R语言命令

    4.R语言GGSURVPLOT绘制生存曲线报错 : OBJECT OF TYPE ‘SYMBOL

  • 相关阅读:
    Flume-NG源码分析-整体结构及配置载入分析
    Flume之核心架构深入解析
    使用maven构建scala项目
    大数据的一些面试题
    HBase原理和设计
    Hive UDAF开发详解
    Hive UDTF开发指南
    Hive UDF开发指南
    局域网访问电脑中VMware虚拟机
    百度面试-前端
  • 原文地址:https://www.cnblogs.com/tecdat/p/13803877.html
Copyright © 2011-2022 走看看