Bonjour tout le monde,
J'ai un problème depuis 2 jours que je tente tant bien que mal de résoudre mais cela me laisse dans l'incompréhension la plus totale. Ce problème survient dans le cadre d'une étude sur les variations de cours sur le foreign exchange où je cherchais à stocker les résultats d'une boucle for() dans une liste. Au départ, j’ai 2 cadres de données : un cadre de variations de cours de 1 seconde et un cadre qui contient des dates et des heures de publications de nouvelles macroéconomique moins 1 minute. Un premier algorithme associe les variations d’une seconde du permier cadre avec des horaires et des dates de publication de nouvelles macroéconomiques stockées sur un second cadre grâce à la fonction merge() notamment et affiche ainsi les lignes pour lesquelles ces dates et heures correspondent dans le cadre en seconde et les stock dans un variable nommée « RM ». Ensuite, ces lignes sont comparées à chaque configurations de variations que j’ai mis en place et les numéros sont classés ainsi chacun dans les listes de la configuration qui correspond et c’est là que j’ai un problème. Voici ce que ça donne en code :
Et voilà ce que la console me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 > setwd("H:/") > GUS1 <- read.csv("CADRE EMSEMBLISTE O GBPUSD 1.csv", header = TRUE, dec = ".", sep = ";") > setwd("H:/Relevés des Jour-heure de publications suivant news") > PMIMUK <- read.csv("Jour-heure PMIM UK h-k inf ou égal à 8 pips.csv", header = TRUE, dec = ".", sep = ";") > MPM <- merge(PMIMUK, GUS1) > RM <- sort(MPM$ROW) > for(i in RM) { + N <- which(GUS1$CHAMIN[(i+1):(i+360)] == 1) + X <- GUS1$HIGH[(N[1]+i):(N[6]+i)] + Y <- GUS1$LOW[(N[1]+i):(N[6]+i)] + Z <- rbind(X,Y) + G <- GUS1$SEC[i+N[1]-1] + MATC <- c(53:59) + MI <- match(G, MATC) + if(!is.na(MI)) + { + h <- GUS1$HIGH[i+N[1]-1] + k <- GUS1$LOW[i+N[1]-1] + } + if(is.na(MI)) + { + h <- max(GUS1$HIGH[i:(i+N[1]-1)]) + k <- min(GUS1$LOW[i:(i+N[1]-1)]) + } + m <- (h+k)/2 + e0 <- which(Z >= m + 0.0005) + e10 <- which(Z <= m - 0.0005) + e <- which(Z > m + 0.0010) + e1 <- which(Z < m - 0.0010) + A[i] <- if(!is.na(e1[1]) & !is.na(e10[1]) & is.na(e[1]) & is.na(e0[1]) & (e10[1] <= 120)){list(i)} + } > MAT <- match(RM, A) > CAS31 <- MAT[!is.na(MAT)]
Je ne comprends pas bien où est l’erreur. Quelqu’un pourrait-il m’aider, svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error in A[i] <- if (!is.na(e1[1]) & !is.na(e10[1]) & is.na(e[1]) & is.na(e0[1]) & : object 'A' not found
Voici le lien pour le cadre contenant les dates/heures en question : p://www.cjoint.com/c/EGso3Hhk2da
PS: Je ne sais pas comment vous faire parvenir le cadre des quotations en secondes car le fichier fait 70 Mo et n'ai pas accepté par cjoint. Si vous avez l'adresse d'un autre hébergeur comme celui-ci, faites le moi savoir svp. Cordialement
Partager