Bonjour,
Je souhaite sur chaque ligne d'un dataframe calculer la moyenne d'une colonne VAL, pour toutes les lignes dont les valeurs de comparaison COMP sont comprises dans un intervalle COND_INF - COND_SUP de ma ligne sur laquelle je calcule la moyenne. Il y a donc une moyenne à calculer sur chaque ligne de mon data frame.
Dans un Dataframe, chaque ligne à 4 colonnes tout le temps renseignées
COMP = la colonne sur laquelle la condition sera appliquée pour prendre la ligne en compte ou pas dans le calcul de la moyenne
VAL = la valeur qui sera utilisée pour le calcul de la moyenne si la ligne est prise en compte
COND_INF = la borne inférieur (-20% de COMP) dont COMP devra être supérieur-égal pour être prise en compte
COND_SUP = la borne supérieur (+20% de COMP) dont COMP devra être inférieur-égal pour être prise en compte
J'ai essayé d'expliquer le raisonnement que je souhaite obtenir dans le code ci-dessous.
Merci de votre aide car je n'y arrive pas du tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 df <- data.frame(comp = c(10, 12, 14, 17, 17), val = c(0, 5, 10, 15, 20), cond_inf = c(8, 9.6, 11.2, 13.6, 13.6), cond_sup = c(12, 14.4, 16.8, 20.4, 20.4), mean_cond_text1 = c("Moyenne de VAL des lignes dont COMP est compris entre 8 12", "Moyenne de VAL des lignes dont COMP est compris entre 9.6 14.4", "Moyenne de VAL des lignes dont COMP est compris entre 11.2 16.8", "Moyenne de VAL des lignes dont COMP est compris entre 13.6 20.4", "Moyenne de VAL des lignes dont COMP est compris entre 13.6 20.4"), mean_cond_text2 = c("(val_ligne1+val_ligne2)/2", "(val_ligne1+val_ligne2+val_ligne3)/3", "(val_ligne2+val_ligne3)/2", "(val_ligne3+val_ligne4+val_ligne5)/2", "(val_ligne3+val_ligne4+val_ligne5)/2)"), mean_cond_text3 = c("(0+5)/2", "(0+5+10)/3", "(5+10)/2", "(10+15+20)/3", "(10+15+20)/3)"), mean_cond_num = c((0+5)/2, (0+5+10)/3, (5+10)/2, (10+15+20)/3, (10+15+20)/3))
Partager