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)
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"
You can use the BatchGetSymbols package, which also gets the list by scraping Wikipedia.
library(BatchGetSymbols)
sp500 <- GetSP500Stocks()
sp500$tickers
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With