0

我想将一些数据导入 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>
4

1 回答 1

1

如果您使用回归分析对这些数据进行建模,您可能会考虑使用混合效应(多级/分层线性)模型。在这种情况下,甚至在 R 中的其他分析情况下,不要考虑存储效率。为每个参与者i的k个项目中的每个项目创建一个数据框。因此,每个订单都会有一行。行中的其他字段将捕获参与者或订单的协变量。那些代表演员的特征将被重复k次,除非这些特征在订单中发生变化。只要您认识到这是演员的变化,而不是订购项目的特征,这种变化是可以接受的(尽管两者可能相关!所以是的,这是一个模糊的区别)。

例如演员 1 购买了 3 件 A、B 和 C,演员 2 购买了 1 件 B。演员的年龄和物品的成本也包括在内:

df <- data.frame( i=c(1,1,1,2), item=c("A","B","C","B"), itemCost=c(12,4,7,4), iage=c(23,23,23,47) )
df
#  i item itemCost iage
#1 1    A       12   23
#2 1    B        4   23
#3 1    C        7   23
#4 2    B        4   47

这种结构在 R 中非常灵活地分析。

于 2013-10-18T13:24:10.497 回答