1

R と xml パッケージを使用して、html ファイルに格納されているデータを解析しています。別の質問 ( https://stackoverflow.com/a/1849388/1409652 ) からのアドバイスを使用して、 readHTMLTable 関数を使用してこれをガスで調理しています。

対象の html テーブルに 2 つのヘッダーがあるという問題が 1 つあります。そのうちの 1 つは readHTMLTable によって取得されず、データが関連する単位の識別情報を提供します (これはすべての異なる html ファイルで異なるため、デフォルトを入れるだけでなく、それらを読み取る必要があります)。

html ファイルで xml パッケージの関数を指定し、必要な特定の行をターゲットにする必要があると考えています。残念ながら、どの機能かはわかりません。また、これに関する用語についての知識も不十分です。以下に HTML コードのサンプルを示しますが、機密情報であるため値は含めていません。役に立つ場合は、ダミー データを差し替えて投稿できます。したがって、「期間」、「ボリューム」、「関税」を含むヘッダーは、テーブル本体のすべてのデータと同様に問題なく送信されます。「Unit1」「Unit2」などを含むヘッダーが通っていません。

<thead> 
<tr> 
<th class="center" colspan="1" rowspan="1"></th><th class="center" onmouseover="javascript:Tip('Unit1');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Unit1</th><th class="center" onmouseover="javascript:Tip('Unit2');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Unit2</th><th class="center" onmouseover="javascript:Tip('Unit3');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Unit3</th><th class="center" onmouseover="javascript:Tip('Others');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Others</th> 
</tr><tr> 
<th class="left" colspan="1" rowspan="1">Period</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th> 
</tr> 
</thead>
<tbody>…all the data…&lt;/tbody>

要約すると、Rのxmlパッケージを使用して上記のhtmlのユニット情報を抽出する方法についての指針はありますか?

4

1 に答える 1

1

私が必要としていたのは、主題に関する知識だけでした;-)

xpath構文を使用して、次を使用してユニット名のリストを取得できました。

xpathSApply(doc, "//th[@class='center']/text()")

これらの // にも対処することで、これをより効率的にできると信じています。

于 2013-01-09T12:40:00.277 に答える