2013-07-20 9 views
6

ヤフーファイナンスを通じてRに入金されたすべてのミューチュアルファンドのリストを取得したいと思います.TTRパッケージにstockSymbolsファンクションがありますが、ミューチュアルファンドを取得していないようです。RのすべてのYahoo Financeのミューチュアルファンドのリストを取得するには?

おかげで、

+0

'stockSymbol'機能は、(また、他のいくつかの取引所を示しています)ナスダックウェブサイト から株式の一覧を取得します。 あなたが欲しいの資産を示しています同様のWebページを知っていれば、 のことができます。単にそれを取り出して解析するだけです。 –

+1

ミューチュアルファンドの完全なリストを持っているウェブサイトがあります:関心のある人なら誰でもeoddata.com。私の問題は、セクターや業界によってミューチュアルファンドを獲得する必要があることです。ヤフーファイナンスAPIがそうする可能性が最も高い –

答えて

3

私はYahooが(同様に、彼らがカバー銘柄のリストを提供していない) のために、彼らはデータを持っているすべてのミューチュアルファンドのリストを提供するとは思いません。 あなたはコメントで言及したウェブサイトからリストをダウンロードすることができます。 すべての資金をループします。 Yahoo!から の対応する「プロフィール」ページを取得し、必要な情報を抽出します。「カテゴリ」フィールド あなたが望む "セクターと業界"に最も近いものになります。

# Read the list of funds 
# I assume the file was downloaded manually from 
# http://www.eoddata.com/Data/symbollist.aspx?e=USMF 
# This requires registration (free). 
d <- read.delim("USMF.txt", stringsAsFactors = FALSE) 

# Retrieve the profile page, for each of the funds. 
# It takes 1 second for each, and there are 24,000 of them: 
# this may take more than 6 hours. 
library(RCurl) 
library(stringr) 
d$Category <- "" 
for(i in seq_len(nrow(d))) { 
    try({ 
    url <- paste0("http://uk.finance.yahoo.com/q/pr?s=", d$Symbol[i]) 
    cat(url, " ") 
    profile <- getURL(url) 
    row <- str_extract(profile, "Category.*?</tr>") 
    cell <- str_extract(row,  "<td.*</td>"  ) 
    d$Category[i] <- str_replace_all(cell, "<.*?>", "") 
    cat(d$Category[i], "\n") 
    }) 
} 
head(d) 
関連する問題