2017-10-19 1 views
0

Ok, j'ai donc tiré une liste de tickers à partir d'une trame de données triée qui a été triée par date. Ainsi mes symboles vecteur de caractères est dans un ordre de tri:Loop Lire le vecteur de caractères dans l'ordre où il a été produit par ordre alphabétique

> tickers 
    [1] "SPPI" "ZGNX" "ARDM" "PRTK" "GTXI" "HEB" "FCSC" "ACOR" "ALKS" "MNKD" "HRTX" "CTIC" 
[13] "ARLZ" "JAZZ" "VVUS" "DEPO" "OREX" "PLX" "PTIE" "DRRX" "SGEN" "PCRX" "PSDV" "ALIM" 
[25] "INCY" "ATRS" "INSY" "CRIS" "CORT" "EBS" "RGEN" "ARNA" "AMRN" "HALO" "NAVB" "SUPN" 
[37] "EXEL" "IPXL" "IMGN" "DVAX" "SCMP" "TTNP" "ENDP" "AVDL" "AVEO" "TBPH" "DCTH" "ABBV" 
[49] "AMAG" "VNDA" "BMRN" "MDCO" "OMER" "BDSI" "EGRX" "ACRX" "KERX" "NKTR" "PGNX" "AEZS" 
[61] "ENTA" "BCRX" "ADMS" "VRTX" "NBIX" "RMTI" "ADMP" "AMGN" "MNTA" "PTX" "EBIO" "NYMX" 
[73] "VTL" "TTPH" "MACK" "LPTX" "GWPH" "SPHS" "RPRX" "OTIC" "NEOT" "CHRS" "ZFGN" "NEOS" 
[85] "RDHL" "PTLA" "OPK" "CHMA" "ACAD" "NLNK" "AZN" "ICPT" "AAAP" "DERM" "OCUL" "MRNS" 
[97] "RVNC" "CLVS" "GALE" "LPCN" "TSRO" "AMPE" "CYTR" "RARE" "MCRB" "ADMA" "IONS" "VTVT" 
[109] "AUPH" "EARS" "ACRS" "KMDA" "RIGL" "KPTI" "TNXP" "AERI" "NVAX" "VICL" "SRPT" "GILD" 
[121] "ITCI" "GNCA" "ABUS" "CEMP" "TENX" "ALNY" "PLXP" "PTN" "INNL" "ANTH" "CRBP" "BSTC" 
[133] "REPH" "NOVN" "CERC" "HTBX" "LXRX" "HZNP" "SGYP" "OPHT" "AKAO" "LIFE" "PRTO" "VCEL" 
[145] "IRWD" "PBMD" "AMPH" "PFE" "AGRX" "EGLT" "ADHD" "FGEN" "AGN" "GEMP" "OCRX" "CATB" 
[157] "DMTX" "AVIR" "JNJ" "TCON" "SAGE" "ZSAN" "AXON" "MRK" "VRX" "ARDX" "XBIT" "CDTX" 
[169] "TRVN" "CELG" "CMRX" "ARGS" "LJPC" "NDRM" "PBYI" "SCYX" "PTCT" "GALT" "KURA" "AKCA" 
[181] "TGTX" "NVS" "CPRX" "LLY" "GNMX" "BLRX" "XENE" "FOMX" "SNY" "REGN" "RTTR" "CARA" 
[193] "NVCR" "BMY" "ONCE" "GERN" "MESO" "OMED" "MTFB" "EIGR" "ACHN" "AKTX" "XOMA" "CAPR" 
[205] "RDUS" "NTRP" "BPMX" "TXMD" "BTX" "GSK" "CORI" "FOLD" "BLPH" "SBPH" "NVO" "RETA" 
[217] "ECYT" "IMDZ" "MTNB" "ARQL" "LOXO" "ZYME" "RNN" "PIRS" "FPRX" "CALA" "BGNE" "BLUE" 
[229] "CLSN" "CRVS" "GLYC" "JUNO" "IOVA" "RGLS" "XLRN" "ALDX" "EPZM" "SELB" "IMUC" "BLCM" 
[241] "GBT" "STML" "AGIO" "RARX" "ALDR" "ITEK" "IMRN" "QURE" "SVRA" "KDMN" "CBAY" "BVXV" 
[253] "CYTX" "NVIV" "MYOK" "ZYNE" "ESPR" "GLPG" "ABIO" "CVM" "STDY" "CLLS" "INSM" "VSTM" 
[265] "VYGR" "VRNA" "UTHR" "ARRY" "BPMC" "IDRA" "INO" "EPIX" "AGEN" "FENC" "MRTX" "INVA" 
[277] "NBRV" "VSAR" "IPCI" "PRQR" "AZRX" "PRTA" "BHVN" "MYL" "FLXN" "ANAB" "RXDX" 

Je veux la boucle à lire ce vecteur de caractères dans l'ordre qu'il a été produit par rapport alphabétique.

Si je le chargement des illustrerai données avec:

# Note function is store list of commands to perform over a directory of files 

genCHART = function(x){ 
    next.symbol <- tickers[i] # specify to start from first position in vector 
    date.list <- dates[i] # specify to start from first position in vector 
      next.file <- fread(paste0("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=",next.symbol,"&outputsize=full&apikey=6RSYX9BPXKZVXUS9&datatype=csv")) 
      new.df <- data.frame(next.file) 
      head(new.df) 
} 

# Loop calls function in order to process multiple files 
     for (i in 1:length(tickers)){ 
      genCHART(tickers[[i]]) 
     } 

    # loop will do nothing but process and load all tickers.. but its too illustrate the point. 

Ce que nous voyons si nous imprimons tickers [i]

> next.symbol 
[1] "ANTH" 

il me donne le premier symbole par son ordre alphabétique. Donc, il retourne les tickers commençant par A en premier par rapport à ma commande ci-dessus. Je veux qu'il fasse une boucle dans ma liste de personnages comme l'ordre du vecteur ticker.

Y a-t-il moyen de survivre?

Modification post

IF I take a vector of dates: 
> dates 
    [1] "2009-07-05" "2009-07-16" "2009-07-16" "2009-09-04" "2009-10-09" "2009-11-02" 
    [7] "2009-11-02" "2009-12-01" "2009-12-18" "2010-01-22" "2010-01-27" "2010-03-15" 
[13] "2010-03-15" "2010-03-19" "2010-04-09" "2010-04-30" "2010-10-11" "2010-10-28" 
[19] "2011-01-19" "2011-01-28" "2011-02-01" "2011-02-25" "2011-04-29" "2011-06-22" 
[25] "2011-06-24" "2011-06-24" "2011-08-19" "2011-10-31" "2011-11-11" "2011-11-11" 
[31] "2011-11-16" "2011-11-23" "2011-12-08" "2012-01-05" "2012-01-30" "2012-02-17" 

et je veux commencer par le premier vecteur ...

date.list <- dates[i] # specify to start from first position in vector 

ces travaux ne devrait pas même si elle est enveloppée dans une fonction?

Comment puis-je le faire fonctionner pour que je lise le début de mon vecteur, et comment cela fonctionne-t-il lorsque je mets mon code dans une fonction et exécute ensuite la fonction en boucle pour traiter plusieurs fichiers?

+2

Il n'y a pas de boucle dans votre code. Aussi, où est-ce que 'i' est défini? – Roland

+0

whoops - j'appelle cette fonction dans une boucle ... laissez-moi éditer –

+3

'fonction (x)' devrait probablement être 'fonction (i)'. – Roland

Répondre

0

print(i) était = à 3

i=1 

a été la réponse