Bonjour à tous,
Voici une partie de mon dataframe qui fait en réalité, plusieurs centaines de lignes :
Je souhaitais par la suite effectuer un résumé du dataframe ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 df <- data.frame(parcelle = c(11, 12, 11, 8, 11, 12), ess1 = c("x", "y", "z", "z", "x", "y"), nb1 = c(0,1,3,0,4,9), ess2 = c("y","a","x","y","z","x"), nb2 = c(5,4,1,5,6,0), ess3 = c("x","z","z","a","y","x"), nb3 = c(1,0,2,0,6,0))
Il s'agit ici de ne plus avoir de doublons de parcelles, sommer tous les nbX par parcelle et inverser le nom des colonnes (ess1, ess2, ess3) par leurs valeurs (a, x, y, z).
Voici la forme souhaitée :
De plus je souhaitais également diviser les valeurs obtenues dans tab pour chaque parcelle, par le nombre d'apparition des parcelles dans df.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 tab <- data.frame(parcelle = c(8, 11, 12), a = c(0, 0, 4), x = c(0, 6, 0), y = c(5, 11, 9), z = c(0, 11, 0))
Par exemple si dans df la parcelle 11 est apparue 30 fois, je souhaiterai diviser les valeurs de la ligne parcelle 11 par 30 dans tab.
J'ai tenté plusieurs approches avec les fonctions : pivot_wider, tapply, xtabs, mais je n'ai pas réussi à aboutir sur quelque chose de concret.
J'espère avoir été suffisamment clair.....
Merci pour vos réponses.
David
Partager