XMLの構文解析が新しく、いくつかのバスケットボールNBAのsportVUデータを解析しようとしています。私は(要約形式)などに見えるXMLファイルを持っている:各ノードについて、XMLパッケージを使用して子ノードの数を計算するR
<quarter number="1">
<possession team-id="30" points="3"/>
<possession team-id="23" points="1"/>
<possession team-id="30" points="2"/>
</quarter>
<quarter number="2">
<possession team-id="23" points="3"/>
<possession team-id="30" points="2"/>
</quarter>
<quarter number="3">
<possession team-id="30" points="1"/>
<possession team-id="30" points="1"/>
<possession team-id="30" points="1"/>
<possession team-id="23" points="2"/>
</quarter>
<quarter number="4">
<possession team-id="23" points="2"/>
</quarter>
私のような、1列としてチーム-IDを持つデータフレーム、および別の列としてポイントの数を作成しました:
library(XML)
data = xmlParse("myXMLfile.XML")
my_df <- data.frame(
team.id = sapply(data["//quarter/possession/@team-id"], as, "integer"),
points = sapply(data["//quarter/possession/@points"], as, "integer")
)
my_df
team.id points
1 30 3
2 23 1
3 30 2
4 23 3
5 30 2
6 30 1
7 30 1
8 30 1
9 23 2
10 23 2
私は、これまでのように見えるようにデータフレームを更新してしまうラベル四半期、第三列を追加したいと思います:
my_new_df
team.id points quarter
1 30 3 1
2 23 1 1
3 30 2 1
4 23 3 2
5 30 2 2
6 30 1 3
7 30 1 3
8 30 1 3
9 23 2 3
10 23 2 4
私はこれを行うことができるようにする最も簡単な方法を把握、あなたをつかむことですベクトル内の固有の四分数を計算し、各四分節ノードの下にある子ノードの数だけベクトルを繰り返します。私はこれをどのように達成できるのか誰も知っていますか?私は、XMLパッケージを含まない一般的に異なるアプローチにオープンしています(たとえば、xml2ソリューションがある場合など)。
ありがとうございます!
ありがとうございました。 xpathApplyは、XMLパッケージを使用してXML文書を解析する強力な方法です。私はそれらがたくさん使われているようだ。 – Canovice
@Canovice - それは浮き沈みがあります:) –