ノードが同じ名前のXMLファイルがあり、データフレームを作成するために必要なデータを選択する方法がわかりません。私はRとXMLを初めて使っているので、動作させることができません!同じ名前の複数のノードがある場合にXMLからRへの解析
私のXMLは、この(ほんの始まり)のようになります。
<GL_Document xmlns="">
<time_Period.timeInterval>...</time_Period.timeInterval>
<TimeSeries>
<mRID>1</mRID>
<MktPSRType>
<psrType>ProdType1</psrType>
</MktPSRType>
<Period>
<timeInterval>
<start>2015-12</start>
<end>2016-11</end>
</timeInterval>
<resolution>PT60M</resolution>
<Point>
<position>1</position>
<quantity>9</quantity>
</Point>
<Point>
<position>2</position>
<quantity>7</quantity>
</Point>
<Point>
<position>3</position>
<quantity>9</quantity>
</Point>
コードは(ここでは期間が全体の構造を確認するために開発されていないデータの同じタイプの「なTimeSeries」という名前の別のノードが含まれています)
<GL_Document xmlns="">
<time_Period.timeInterval>...</time_Period.timeInterval>
<TimeSeries>
<mRID>1</mRID>
<MktPSRType>
<psrType>ProdType1</psrType>
</MktPSRType>
<Period>...</Period>
</TimeSeries>
<TimeSeries>
<mRID>2</mRID>
<MktPSRType>
<psrType>ProdType2</psrType>
</MktPSRType>
<Period>...</Period>
</TimeSeries>
<TimeSeries>...</TimeSeries>
<TimeSeries>...</TimeSeries>
<TimeSeries>...</TimeSeries>
<TimeSeries>...</TimeSeries>
<TimeSeries>...</TimeSeries>
</GL_Document>
私は次の形式でデータを取得したい:
psrType position quantity
ProdType1 1 9
... ... ...
ProdType2 1 ...
私はこの記事で説明したようにソリューションを適用しようとしました:How to parse XML to R data frame しかし、失敗しました。 私のコードは次のように見えますが、私は結果のデータフレームにデータが含まれていない:
xml.url3<-getURL(xml.file3)
doc<-xmlParse(xml.url3)
position_path<-"//GL_Document/TimeSeries/Period/Point/position"
quantity_path<-"//GL_Document/TimerSeries/Period/Point/quantity"
df<-data.frame(
pos=as.integer(sapply(doc[position_path],as,"integer")),
quant=as.integer(sapply(doc[quantity_path],as,"integer")))
はあなたの助けのためにありがとうございました!
オクラホマので、最終的にはこれは私がやったことです: 'XML psrType値について、
data.frame()
は期間と量のそれぞれ対応する値に<TimeSeries>
につき一つの値をマッピングしancestor::*
を使用しています。 (xml.List(doc)、data.frame) doc <-xmlParse dfexp <-df [df $ .id == "TimeSeries"、] ' – Daldal申し訳ありません、私は2回コメントしなければなりません。編集!それから、私のtimeseriesノード内のすべてのものが列挙されたデータフレームがありました。開始と停止の時間が与えられたので、私は間隔の位置の数を考慮してコードを書くことができました。おそらく最も巧妙な解決策ではないでしょうが、それは機能します! – Daldal