En fait, il n'y a aucun pb jusqu'à la ligne 21
if(x==integer(0) & x1==integer(0)) stop()
. J'ai ajouté cette ligne pour justement corriger les valeur de i qui retourne "integer(0)". Dans la matrice données AT3 sur laquelle la boucle se base, il y a un seul élément i qui retourne "integer(0)".
AD: Oui en effet, il y a 2&, merci. Quand j'ai ajouté un 2e &, le message d'erreur s'est changé, comme ceci:
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 34
| > AT3bc <- for(i in AT3) {
+ X <- T3$HIGH[i:(i+4)]
+ Y <- T3$LOW[i:(i+4)]
+ Z <- cbind(X, Y)
+ c = max(Z)
+ d = min(Z)
+ X <- T3$HIGH[(i+5):(i+15)]
+ Y <- T3$LOW[(i+5):(i+15)]
+ Z <- cbind(X, Y)
+ e <- Z[Z > c | Z < d]
+ w <- which(X == e[1])
+ w1 <- which(Y == e[1])
+ mi <- min(w, w1)
+ X <- T3$HIGH[(mi+(i+4)):(mi+(i+34))]
+ Y <- T3$LOW[(mi+(i+4)):(mi+(i+34))]
+ Z <- cbind(X, Y)
+ f <- Z[Z > (c + abs(c-d)) | Z < (d - abs(c-d))]
+ x <- which(X == f[1])
+ x1 <- which(Y == f[1])
+ mj <- min(x, x1)
+ if(x==integer(0) && x1==integer(0)) print(NT) else
+ X1 <- T5$HIGH[((mj+mi)+(i+4)):(mi+(i+34))]
+ Y1 <- T5$LOW[((mj+mi)+(i+4)):(mi+(i+34))]
+ w2 <- which(X1 >= f[1])
+ w3 <- which(X1 <= f[1])
+ w4 <- which(Y1 >= f[1])
+ w5 <- which(Y1 <= f[1])
+ print(w2)
+ print(w3)
+ print(w4)
+ print(w5)
+ }
Error in if (x == integer(0) && x1 == integer(0)) print(NT) else X1 <- T5$HIGH[((mj + :
missing value where TRUE/FALSE needed |
Partager