0

いくつかのデータを R にインポートしたいのですが、それをどのように構造化するのか疑問に思っています。以前に R を使用したことがありますが、まだ初心者レベルです。

データは典型的な 1 対多の関係を表し、XML として利用できます。私の実際のデータの複雑な現実に頭を悩ませないようにするために、悪名高い Order -> OrderItem の例を使用しましょう。私の XML ファイルには Orders のコレクションが含まれており、各注文には、いくつかの単純型要素に加えて、OrderItems のコレクションが含まれており、各注文項目には独自の単純型要素があります。

リレーショナル スタイルの 2 つのデータ フレームを作成することもできます。1 つは注文用、もう 1 つは注文項目用です。または、注文のデータ フレームを作成して、注文項目のミニ データ フレームをそれぞれにボックス化することもできます。それとも、自分のオブジェクトを定義しようとしますか? 私はRでOOをしたことがありません。

R にはそれを行うための「正しい」方法があり、その組み込みツールにより、これら 3 つの構造のいずれかを簡単に操作できると思います。でも、どれだかわかりません。それとも、私が思いもよらなかった4番目のアプローチですか?どちらを選ぶべきですか?

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回繰り返されます。そのような変更は、それが注文されたアイテムの特徴ではなく、俳優の変更であることを認識している限り、許容されます (ただし、この 2 つは関連している可能性があります! そうです、あいまいな違いです)。

アクター 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 に答える