皆様、
オーストラリアの人口/居住地のラスター レイヤーを探しています。オンラインでいくつかの無料のデータセットを見つけようとしましたが、実際に有用な形式のものを見つけることができませんでした. ウィキペディアから人口データをスクレイピングして、独自のラスター レイヤーを作成するのは面白いのではないかと思いました。この目的のために、wiki から情報を取得しようとしましたが、html について何も知らなかったことが役に立ちませんでした。
アイデアは、wiki ページを持つオーストラリアのすべての町のリストを提供し、適切なデータを data.frame に抽出することです。
Web ページのソース データを R に取り込むことはできますが、必要な特定のデータを抽出する方法に行き詰まっています。以下のコードは、私がどこで立ち往生しているかを示しています。助けがあれば本当に感謝するか、正しい方向へのヒントが得られます。
readHTMLTable() を使用できるかもしれないと思ったのは、通常の Web ページでは、必要な情報が適切な表の右にずれているためです。しかし、この関数を使用するとエラーが発生します (以下)。ソース情報を取得するときにこのテーブルを指定する方法はありますか?
この質問があまり意味をなさない場合は申し訳ありませんが、HTML ファイルの検索に関して自分が何をしているのかわかりません。
ご協力いただきありがとうございます。
乾杯、アダム
require(RJSONIO)
loc.names <- data.frame(town = c('Sale', 'Bendigo'), state = c('Victoria', 'Victoria'))
u <- paste('http://en.wikipedia.org/wiki/',
sep = '', loc.names[,1], ',_', loc.names[,2])
res <- lapply(u, function(x) htmlParse(x))
readHTMLTable 使用時のエラー:
tabs <- readHTMLTable(res[1])
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘readHTMLTable’ for signature ‘"list"’
たとえば、必要なデータの一部は、html で次のようになります。私の質問は、私が持っている HTML のものでこれらの場所を指定するにはどうすればよいですか?
/ <span class="geo">-38.100; 147.067
title="Victoria (Australia)">Victoria</a>. It has a population (2011) of 13,186