Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get all S&P500 corp code list using R?

Tags:

r

I want to make FOR statement in R for analysis Stock data at one go.

But I don't know how do I get a S&P corp code list.

Please, let me know solution.

Thank you.

library(rpart)
library(rpart.plot)
library("quantmod")
startDate = as.Date("2012-01-01")
endDate = as.Date("2014-01-01") 
getSymbols("005930", src = "google", from = startDate, to = endDate) 
like image 850
Commaeng Avatar asked Dec 05 '25 18:12

Commaeng


2 Answers

If you use Bloomberg/Reuters or any other data provider then you can simply get whatever you want in Excel, then read it to R and then proceed to download historical data. If you do not have access to such commercial data providers, then one of the ways is web scraping (I believe wikipedia is reliable enough, but do double check):

library(rvest)
url <- "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
SP500 <- url %>%
  html() %>%
  html_nodes(xpath='//*[@id="mw-content-text"]/div/table[1]') %>%
  html_table()
SP500 <- SP500[[1]]
Tix <- SP500$`Ticker symbol`
Tix

As of today, the constituents of S&P500:

> Tix
  [1] "MMM"   "ABT"   "ABBV"  "ACN"   "ATVI"  "AYI"   "ADBE"  "AMD"   "AAP"  
 [10] "AES"   "AET"   "AMG"   "AFL"   "A"     "APD"   "AKAM"  "ALK"   "ALB"  
 [19] "ARE"   "ALXN"  "ALGN"  "ALLE"  "AGN"   "ADS"   "LNT"   "ALL"   "GOOGL"
 [28] "GOOG"  "MO"    "AMZN"  "AEE"   "AAL"   "AEP"   "AXP"   "AIG"   "AMT"  
 [37] "AWK"   "AMP"   "ABC"   "AME"   "AMGN"  "APH"   "APC"   "ADI"   "ANSS" 
 [46] "ANTM"  "AON"   "APA"   "AIV"   "AAPL"  "AMAT"  "ADM"   "ARNC"  "AJG"  
 [55] "AIZ"   "T"     "ADSK"  "ADP"   "AN"    "AZO"   "AVB"   "AVY"   "BHI"  
 [64] "BLL"   "BAC"   "BK"    "BCR"   "BAX"   "BBT"   "BDX"   "BBBY"  "BRK.B"
 [73] "BBY"   "BIIB"  "BLK"   "HRB"   "BA"    "BWA"   "BXP"   "BSX"   "BMY"  
 [82] "AVGO"  "BF.B"  "CHRW"  "CA"    "COG"   "CPB"   "COF"   "CAH"   "CBOE" 
 [91] "KMX"   "CCL"   "CAT"   "CBG"   "CBS"   "CELG"  "CNC"   "CNP"   "CTL"  
[100] "CERN"  "CF"    "SCHW"  "CHTR"  "CHK"   "CVX"   "CMG"   "CB"    "CHD"  
[109] "CI"    "XEC"   "CINF"  "CTAS"  "CSCO"  "C"     "CFG"   "CTXS"  "CLX"  
[118] "CME"   "CMS"   "COH"   "KO"    "CTSH"  "CL"    "CMCSA" "CMA"   "CAG"  
[127] "CXO"   "COP"   "ED"    "STZ"   "COO"   "GLW"   "COST"  "COTY"  "CCI"  
[136] "CSRA"  "CSX"   "CMI"   "CVS"   "DHI"   "DHR"   "DRI"   "DVA"   "DE"   
[145] "DLPH"  "DAL"   "XRAY"  "DVN"   "DLR"   "DFS"   "DISCA" "DISCK" "DISH" 
[154] "DG"    "DLTR"  "D"     "DOV"   "DOW"   "DPS"   "DTE"   "DD"    "DUK"  
[163] "DXC"   "ETFC"  "EMN"   "ETN"   "EBAY"  "ECL"   "EIX"   "EW"    "EA"   
[172] "EMR"   "ETR"   "EVHC"  "EOG"   "EQT"   "EFX"   "EQIX"  "EQR"   "ESS"  
[181] "EL"    "ES"    "RE"    "EXC"   "EXPE"  "EXPD"  "ESRX"  "EXR"   "XOM"  
[190] "FFIV"  "FB"    "FAST"  "FRT"   "FDX"   "FIS"   "FITB"  "FE"    "FISV" 
[199] "FLIR"  "FLS"   "FLR"   "FMC"   "FL"    "F"     "FTV"   "FBHS"  "BEN"  
[208] "FCX"   "GPS"   "GRMN"  "IT"    "GD"    "GE"    "GGP"   "GIS"   "GM"   
[217] "GPC"   "GILD"  "GPN"   "GS"    "GT"    "GWW"   "HAL"   "HBI"   "HOG"  
[226] "HRS"   "HIG"   "HAS"   "HCA"   "HCP"   "HP"    "HSIC"  "HSY"   "HES"  
[235] "HPE"   "HLT"   "HOLX"  "HD"    "HON"   "HRL"   "HST"   "HPQ"   "HUM"  
[244] "HBAN"  "IDXX"  "INFO"  "ITW"   "ILMN"  "IR"    "INTC"  "ICE"   "IBM"  
[253] "INCY"  "IP"    "IPG"   "IFF"   "INTU"  "ISRG"  "IVZ"   "IRM"   "JEC"  
[262] "JBHT"  "SJM"   "JNJ"   "JCI"   "JPM"   "JNPR"  "KSU"   "K"     "KEY"  
[271] "KMB"   "KIM"   "KMI"   "KLAC"  "KSS"   "KHC"   "KR"    "LB"    "LLL"  
[280] "LH"    "LRCX"  "LEG"   "LEN"   "LVLT"  "LUK"   "LLY"   "LNC"   "LKQ"  
[289] "LMT"   "L"     "LOW"   "LYB"   "MTB"   "MAC"   "M"     "MNK"   "MRO"  
[298] "MPC"   "MAR"   "MMC"   "MLM"   "MAS"   "MA"    "MAT"   "MKC"   "MCD"  
[307] "MCK"   "MDT"   "MRK"   "MET"   "MTD"   "KORS"  "MCHP"  "MU"    "MSFT" 
[316] "MAA"   "MHK"   "TAP"   "MDLZ"  "MON"   "MNST"  "MCO"   "MS"    "MOS"  
[325] "MSI"   "MUR"   "MYL"   "NDAQ"  "NOV"   "NAVI"  "NTAP"  "NFLX"  "NWL"  
[334] "NFX"   "NEM"   "NWSA"  "NWS"   "NEE"   "NLSN"  "NKE"   "NI"    "NBL"  
[343] "JWN"   "NSC"   "NTRS"  "NOC"   "NRG"   "NUE"   "NVDA"  "ORLY"  "OXY"  
[352] "OMC"   "OKE"   "ORCL"  "PCAR"  "PH"    "PDCO"  "PAYX"  "PYPL"  "PNR"  
[361] "PBCT"  "PEP"   "PKI"   "PRGO"  "PFE"   "PCG"   "PM"    "PSX"   "PNW"  
[370] "PXD"   "PNC"   "RL"    "PPG"   "PPL"   "PX"    "PCLN"  "PFG"   "PG"   
[379] "PGR"   "PLD"   "PRU"   "PEG"   "PSA"   "PHM"   "PVH"   "QRVO"  "PWR"  
[388] "QCOM"  "DGX"   "RRC"   "RJF"   "RTN"   "O"     "RHT"   "REG"   "REGN" 
[397] "RF"    "RSG"   "RAI"   "RHI"   "ROK"   "COL"   "ROP"   "ROST"  "RCL"  
[406] "CRM"   "SCG"   "SLB"   "SNI"   "STX"   "SEE"   "SRE"   "SHW"   "SIG"  
[415] "SPG"   "SWKS"  "SLG"   "SNA"   "SO"    "LUV"   "SPGI"  "SWK"   "SPLS" 
[424] "SBUX"  "STT"   "SRCL"  "SYK"   "STI"   "SYMC"  "SYF"   "SNPS"  "SYY"  
[433] "TROW"  "TGT"   "TEL"   "FTI"   "TSO"   "TXN"   "TXT"   "TMO"   "TIF"  
[442] "TWX"   "TJX"   "TMK"   "TSS"   "TSCO"  "TDG"   "RIG"   "TRV"   "TRIP" 
[451] "FOXA"  "FOX"   "TSN"   "UDR"   "ULTA"  "USB"   "UA"    "UAA"   "UNP"  
[460] "UAL"   "UNH"   "UPS"   "URI"   "UTX"   "UHS"   "UNM"   "VFC"   "VLO"  
[469] "VAR"   "VTR"   "VRSN"  "VRSK"  "VZ"    "VRTX"  "VIAB"  "V"     "VNO"  
[478] "VMC"   "WMT"   "WBA"   "DIS"   "WM"    "WAT"   "WEC"   "WFC"   "HCN"  
[487] "WDC"   "WU"    "WRK"   "WY"    "WHR"   "WFM"   "WMB"   "WLTW"  "WYN"  
[496] "WYNN"  "XEL"   "XRX"   "XLNX"  "XL"    "XYL"   "YUM"   "ZBH"   "ZION" 
[505] "ZTS" 
like image 160
AK88 Avatar answered Dec 08 '25 12:12

AK88


You can use the BatchGetSymbols package, which also gets the list by scraping Wikipedia.

library(BatchGetSymbols)

sp500 <- GetSP500Stocks()
sp500$tickers
like image 28
James Hirschorn Avatar answered Dec 08 '25 11:12

James Hirschorn



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!