Je ai le tableau suivant, que je voudrais modifier:
type
position
ratio
number
percentage
DNA
intergénique
0.00026933362
225173
40.757876065
DNA
intragénique
0.00021799943
41250
7.466536342
LIGNE
intergénique
0.00027633335
48619
8.800376494
LIGNE
intragénique
0.00031015097
9578
1.733684487
Je veux ajouter des lignes qui contiennent les modifications suivantes:
-
type: si la valeur "type" est identique entre deux lignes (ce qui est toujours le cas dans mon cas), ajoutez-la à nouveau dans une ligne séparée de la colonne "type".
-
position: changer la valeur de intergénique/intragénique à "génome" si (1)
-
ratio: la valeur du ratio serait la moyenne pondérée calculée à partir du ratio des lignes intergénique et intragénique de la même valeur de type:
((number_intragenic * ratio_intragenic) + (number_intergénique * ratio_intergénique))/(number_intragenic + number_intergénique) -
nombre: somme des valeurs de nombre pour le même type: somme(nombre_intergénique + nombre_intragénique)
-
somme des valeurs de pourcentage pour le même type: somme(percentage_intergénique + percentage_intragenique)
Mon problème est que je ne sais pas comment ajouter des lignes au tableau en faisant des calculs spécifiques à partir des lignes déjà existantes. Il est facile d'ajouter des colonnes en utilisant mutate dans dplyr. Comment puis-je faire cela pour les lignes?
Je préférerais beaucoup que la solution soit fournie dans dplyr.
Modifier: La formule de la moyenne pondérée était incorrecte. J'avais ajouté un signe + au lieu d'un signe * dans la partie suivante de la formule: (nombre_intergénique + ratio_intergénique). Il a maintenant été corrigé.