Je ne parvenais pas à le faire avec le paquet tm.plugin.webmining
, mais je suis venu avec une solution grossière - tirant & données d'analyse syntaxique de ce fichier Web: ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt. Je dis rugueux parce que pour une raison quelconque mes appels avec httr::content(httr::GET(...))
ne fonctionnent pas à chaque fois - je pense que cela a à voir avec le type d'adresse Web (ftp://
) mais je ne fais pas beaucoup de grattage web donc je ne peux pas vraiment explique ça. Il a semblé fonctionner mieux sur mon Linux que sur mon Mac, mais cela pourrait ne pas être pertinent. Quoiqu'il en soit, voici ce que je suis: Merci au commentaire de @ thelatemail, cela semble fonctionner beaucoup plus lisse:
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: Comme par @ suggestion de GSEE, un (probablement) de façon plus robuste pour obtenir le données source est avec la fonction stockSymbols()
dans le package 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
Je ne sais pas si tu voulais juste obtenir des symboles boursiers de noms, mais si vous êtes à la recherche également des informations de prix de l'action réelle que vous pourriez faire quelque chose comme t son:
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)
Donc, comme je l'ai dit, ce n'est pas la solution la plus propre mais nous espérons qu'il vous aide. Notez également que ma source de données attirait les sociétés cotées au NASDAQ (qui est la plupart des grandes entreprises), mais vous pouvez facilement combiner cela avec d'autres sources.
Je ne sais pas pourquoi vous vous embêtez avec tous les paquets 'httr' et étendu' read.csv ("ftp: //path/file.csv", sep = "|") 'l'obtiendra juste bien. 'file =' peut être n'importe quel type de connexion accessible. – thelatemail
@thelatemail Merci d'avoir signalé cela - j'ai mis à jour ma réponse. – nrussell
ou vous pouvez utiliser 'stockSymbols()' – GSee