Bonjour à tous,

Je souhaiterai agréger certaines lignes de mon data.frame qui se présente comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
> HA
            V2           V3           V6      V8    V9
   1: 20/04/2016 13:27:48.62 982_000402954704  1 40340
   2: 20/04/2016 13:27:49.63 982_000402954704 12    10
   3: 20/04/2016 13:58:59.90 982_000402954704  1 18583
   4: 20/04/2016 13:59:00.11 982_000402954704  6     1
   5: 20/04/2016 13:59:00.91 982_000402954704  1     2
Si deux lignes présentent : 1/la même date V2 + 2/le même code V6 + 3/un chiffre V9 inférieur à 10
Alors, je voudrais agréger ces lignes en gardant : 1/l'heure V3 de la 1ère ligne, 2/la somme des V8 et V9

Le résultat attendu serait (les deux dernières lignes ont été agrégées):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
> HA
            V2           V3           V6      V8    V9
   1: 20/04/2016 13:27:48.62 982_000402954704  1 40340
   2: 20/04/2016 13:27:49.63 982_000402954704 12    10
   3: 20/04/2016 13:58:59.90 982_000402954704  1 18583
   4: 20/04/2016 13:59:00.11 982_000402954704  7     3
J'ai tenté plusieurs codes mais je pense que la meilleure forme serait une boucle for sur tout le data.frame, du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
for (i in 1:nrow(HA))
{
    if (HA$V6[i] == HA$V6[i+1] & HA$V2[i] == HA$V2[i+1]  & HA$V9 < 10)
    {
      aggregate(HA$V8, list(HA$V2, HA$V3, HA$V6), sum)
    }
}
Est-ce que quelqu'un aurait des pistes pour arriver au résultat voulu ?

Merci beaucoup !