Bonjour,

J'ai un vecteur temps et un vecteur cause :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
time<-c(5,6,7,8,9,12,13,15,16,20,22,23)
cause<-c(1,0,1,2,0,0,1,2,1,0,0,2)
Je souhaiterais récupérer au moyen d'une boucle for (car il peut y avoir plus de 2 causes) un vecteur temps pour chaque cause. C'est à dire un vecteur time_cs1 correspondant au temps où la cause est de 1 (à savoir : 5, 7, 13, 16) et un vecteur time_cs2 correspondant au temps où la cause est de 2 (à savoir : 8, 15, 23).

Voilà le code sans boucle qui fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
  i=1
  time_cs1<-unique(time[cause==i])
  i=2
  time_cs2<-unique(time[cause==i])
Qui donne les résultats suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
>   time_cs1
[1]  5  7 13 16
>   time_cs2
[1]  8 15 23
Quand je passe à la boucle for avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
  time_cs=NULL
 
  for (i in 1:max(cause)){
    time_cs[i]<-unique(time[cause==i])
  }
J'obtiens le warning suivant et mes vecteurs time_cs1 et time_cs2 qui sont "not found".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Warning messages:
1: In time_cs[i] <- unique(time[cause == i]) :
  number of items to replace is not a multiple of replacement length
2: In time_cs[i] <- unique(time[cause == i]) :
  number of items to replace is not a multiple of replacement length
Pouvez-vous m'indiquer comment corriger ma boucle for ? Merci par avance pour aide.

Cordialement