2016-07-22 4 views
0

このWebサイトからテーブルを読み取ろうとしています。readHTMLTableを使用してWebサイトからテーブルを取得するときに、一部の列のみを読み取る

http://www.databaseolympics.com/games/gamessport.htm?g=1&sp=ATH

問題は、私が唯一の最初の列(イベント)と最後の列(メダル)を読み取ることがしたいです。 これは私のコードと結果である:あなたはそれがテーブルのすべての列を返す見ることができるように

temp_URL<-'http://www.databaseolympics.com/games/gamessport.htm?g=1&sp=ATH' 
tab<-readHTMLTable(temp_URL, which=3,colClasses = c('factor',NULL,NULL,NULL,'factor')) 
head(tab) 

    Event   Athlete Country Result Medal 
1 100m Men  Tom Burke  USA  12.0 GOLD 
2   Fritz Hofmann  DEU 12.2 est. SILVER 
3    Francis Lane  USA  12.6 BRONZE 
4   Alajos Szokolyi  HUN 12.6 est. BRONZE 
5 400m Men  Tom Burke  USA  54.2 GOLD 
6   Herbert Jamison  USA  n/a SILVER 

。私はRドキュメントで、colClassesを使用し、Null値を指定するとRがその列を無視するようにしなければならないと読みますが、それは私のためには機能しません。私はあなたがRにデータを持っていたら、それだけで目的の列を持つ新しいデータフレームを作成することは非常に簡単であると認識:

tab<-data.frame(tab$Event,tab$Medal) 
    head(tab) 
     tab.Event tab.Medal 
    1 100m Men  GOLD 
    2    SILVER 
    3    BRONZE 
    4    BRONZE 
    5 400m Men  GOLD 
    6    SILVER 

私は本当にこの余分なステップを回避したいとだけ希望する方法を見つけるだろうデータはRに送られます。なぜなら、このページは数千ページの読み込みが必要なコードの一部であり、複数回実行すると時間がかかることがあるからです。代わりに、ベクターの

答えて

0

使用リスト:

temp_URL<-'http://www.databaseolympics.com/games/gamessport.htm?g=1&sp=ATH' 

tab<-readHTMLTable(temp_URL, which=3,colClasses = list("factor",NULL,NULL,NULL,"factor"),stringsAsFactors = FALSE) 

head(tab) 
       V1  V2 
     1 100m Men GOLD 
     2   SILVER 
     3   BRONZE 
     4   BRONZE 
     5 400m Men GOLD 
     6   SILVER 
+0

それはworked.Thanks – Lee

関連する問題