мне не удалось сделать это с tm.plugin.webmining
пакет, но я придумал шероховатой решение - вытягивать & синтаксического анализа данных из этого веб-файла: ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt. Я говорю грубо, потому что почему-то мои звонки с httr::content(httr::GET(...))
не работают каждый раз - я думаю, что это связано с типом веб-адреса (ftp://
), но я не делаю так много веб-соскабливаний, поэтому я не могу объясните это. Казалось, что он работает лучше на моем Linux, чем мой Mac, но это может быть неуместным. Несмотря на это, вот что я получил: Благодаря @ thelatemail замечании, это, кажется, работает более гладко:
library(quantmod) ## optional
symbolData <- read.csv(
"ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt",
sep="|")
##
> head(symbolData,10)
Symbol Security.Name Market.Category Test.Issue Financial.Status Round.Lot.Size
1 AAIT iShares MSCI All Country Asia Information Technology Index Fund G N N 100
2 AAL American Airlines Group, Inc. - Common Stock Q N N 100
3 AAME Atlantic American Corporation - Common Stock G N N 100
4 AAOI Applied Optoelectronics, Inc. - Common Stock G N N 100
5 AAON AAON, Inc. - Common Stock Q N N 100
6 AAPL Apple Inc. - Common Stock Q N N 100
7 AAVL Avalanche Biotechnologies, Inc. - Common Stock G N N 100
8 AAWW Atlas Air Worldwide Holdings - Common Stock Q N N 100
9 AAXJ iShares MSCI All Country Asia ex Japan Index Fund G N N 100
10 ABAC Aoxin Tianli Group, Inc. - Common Shares S N N 100
Edit: Согласно @ предложение GSEE, в а (предположительно) более надежный способ для получения источник данных с stockSymbols()
функции в пакете TTR
:
> symbolData2 <- stockSymbols(exchange="NASDAQ")
Fetching NASDAQ symbols...
> ##
> head(symbolData2)
Symbol Name LastSale MarketCap IPOyear Sector
1 AAIT iShares MSCI All Country Asia Information Technology Index Fun 34.556 6911200 NA <NA>
2 AAL American Airlines Group, Inc. 40.500 29164164453 NA Transportation
3 AAME Atlantic American Corporation 4.020 83238028 NA Finance
4 AAOI Applied Optoelectronics, Inc. 20.510 303653114 2013 Technology
5 AAON AAON, Inc. 18.420 1013324613 NA Capital Goods
6 AAPL Apple Inc. 103.300 618546661100 1980 Technology
Industry Exchange
1 <NA> NASDAQ
2 Air Freight/Delivery Services NASDAQ
3 Life Insurance NASDAQ
4 Semiconductors NASDAQ
5 Industrial Machinery/Components NASDAQ
6 Computer Manufacturing NASDAQ
Я не знаю, если вы просто хотели, чтобы получить тикер символы из имен, но если вы также ищете фактической информации о ценах акций вы могли бы сделать что-то как t его:
namedStock <- function(name="Microsoft",
start=Sys.Date()-365,
end=Sys.Date()-1){
ticker <- symbolData[agrep(name,symbolData[,2]),1]
getSymbols(
Symbols=ticker,
src="yahoo",
env=.GlobalEnv,
from=start,to=end)
}
##
## an xts object named MSFT will be added to
## the global environment, no need to assign
## to an object
namedStock()
##
> str(MSFT)
An ‘xts’ object on 2013-09-03/2014-08-29 containing:
Data: num [1:251, 1:6] 31.8 31.4 31.1 31.3 31.2 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:6] "MSFT.Open" "MSFT.High" "MSFT.Low" "MSFT.Close" ...
Indexed by objects of class: [Date] TZ: UTC
xts Attributes:
List of 2
$ src : chr "yahoo"
$ updated: POSIXct[1:1], format: "2014-09-02 21:51:22.792"
> chartSeries(MSFT)
Так как я уже сказал, это не самое чистое решение, но мы надеемся, это поможет вам. Также обратите внимание, что мой источник данных привлекал компании, торгуемые на NASDAQ (это самые крупные компании), но вы могли бы легко объединить это с другими источниками.
Я не знаю, почему вы беспокоились обо всем этом 'httr' и расширенных пакетах' read.csv ("ftp: //path/file.csv", sep = "|") 'получит его просто хорошо. 'file =' может быть любым доступным соединением. – thelatemail
@thelatemail Спасибо, что указали, что нет - я обновил свой ответ. – nrussell
или вы можете использовать 'stockSymbols()' – GSee