voilà je dois analyser des séries de données, parmi lesquelles j'aimerai mettre en évidence/retenir uniquement certaines valeurs comprises dans un intervalle.
Voici ci dessous un exemple de code reproductible ( j'espère)
Code : Tout sélectionner
M <- matrix( ncol=3,nrow=5)
M[,1]<- 2 ## Lim inferieure
M[,2] <- 5 ## Lim superieure
M[,3] <- c(1,3,3.5,4,6) ## les données
plot(M[,1],col="blue",typ="l",ylim=c(0,6))
points(M[,2], col="blue",typ="l")
points(M[,3], col="black",typ="p")
dans cet exemple j'aimerai que les points M[2,3],M[3,3],M[4,3] soient "marqués" car compris entre 2 et 5 et les autres marqué différemment.
J'ai pour le moment créer une 4ème colonne " flag" avec une boucle for
Code : Tout sélectionner
M <- cbind(M,c( 0,0,0,0,0))
for (i in 1 : length(M[,3]
if ( M[i,3] < M[i,1] | M[i,3]> M[i,2]
{M[i,4] <- 1}
else
{M[i,4] <- 0}
cela fonctionne mais ma matrice fait 400 000 lignes donc cela prend beaucoup de temps et je dois faire cela sur plusieurs matrices avez vous une solution plus "courte" avec une fonction par exemple?
Cordialement.
Ludovic