我想将一些数据导入 R,并想知道如何构造它。我以前使用过 R,但我仍然处于非常初级的水平。
数据代表典型的一对多关系,并以 XML 形式提供。为了不让您对我的实际数据的复杂现实感到困惑,让我们使用臭名昭著的 Order -> OrderItem 示例。我的 XML 文件包含一个 Orders 集合,每个订单除了一些简单类型元素之外还包含一个 OrderItem 集合,每个订单项都有自己的简单类型元素。
我想我可以制作两个数据框,关系样式,一个用于订单,一个用于订单项目。或者我可以尝试制作一个订单数据框,并以某种方式将订单项目的迷你数据框打包到每个订单项中。或者尝试定义我自己的对象?我从未在 R 中做过任何面向对象。
我假设在 R 中有一种“正确”的方法可以做到这一点,并且它的内置工具使使用这三种结构之一变得容易。但我不知道它是哪一种。或者这是我什至没有想到的第四种方法?我应该选择哪个?
我已经查看了用于导入 XML 的包的文档。他们解释了使用哪些方法从某些节点获取数据,但没有做任何事情来回答我的问题。这些示例始终包含平面数据。
数据分析肯定会包括需要Orders和OrderItems关系的问题。例如,诸如“是否存在周一比周日更频繁订购的商品”。
这是数据当前状态的最小工作示例:
<?xml version="1.0"?>
<orders>
<order>
<orderDate>01.01.1850</orderDate>
<customerName>Jules Verne</customerName>
<orderItems>
<orderItem>
<itemName>miniature steam machine</itemName>
<quantity>2</quantity>
<price>30 guineas</price>
<comment>British import</comment>
</orderItem>
<orderItem>
<itemName>map of Siberia</itemName>
<quantity>1</quantity>
<price>50 sous</price>
</orderItem>
</orderItems>
</order>
<order>
<orderDate>01.06.1970</orderDate>
<customerName>Arthur Clarke</customerName>
<orderItems>
<orderItem>
<itemName>Meccano set "spaceship"</itemName>
<quantity>1</quantity>
<price>50 dollars</price>
</orderItem>
</orderItems>
</order>
</orders>