Supprimer une ligne en double
Bonjour,
Je ne parvient pas à résoudre un problème.
J'ai un dataframe qui se présente de la manière suivante :
il s'agit d'un tableau de type présence absence.
Identifiant |
Lieu |
Valeur |
3 |
Lieu1 |
1 |
3 |
Lieu2 |
1 |
3 |
Lesdeux |
1 |
5 |
Lieu2 |
1 |
2 |
Lieu1 |
1 |
2 |
Lieu2 |
1 |
2 |
Lesdeux |
1 |
Le 1 signifie présence.
Mon objectif est de faire un plot qui m'indique quand mon élément sera présent dans le Lieu1 uniquement, dans mon lieu2 uniquement et enfin dans les deux.
Pour cela, j'aimerai supprimer lorsque l'identifiant est le même (présent 3 fois) les lignes Lieu1 et Lieu2 car il sera déjà visualisable dans lesDeux.
Je ne sais pas si je me suis bien exprimé.
Ma première idée serai de faire un ifelse mais je ne sais pas comment préciser un élément qui se répète trois fois.
J'espère que vous pourrez m'aider
Merci par avance.
Supprimer des éléments dans certaines lignes
Dans mon script pour pouvoir faire mes plots j'ai eu une étape ou j'ai regroupé mes colonnes Lieu1, Lieu2... sous une seule colonne Lieu.
L'étape était la suivante :
Code:
Compilation_long<-Compilation %>% gather(Lieu,Valeur,-Identifiant)
J'était partie du principe que c'était plus simple de faire une boucle et filtrer mes lignes après.
J'avais un dataframe qui se présentais comme ça avant :
Identifiant |
Lieu1 |
Lieu2 |
LesDeux |
1 |
1 |
1 |
1 |
2 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
5 |
1 |
1 |
1 |
6 |
0 |
1 |
0 |
Faire des modifications à cette étape du script m'a parut une bonne solution.
J'ai donc simplement supprimer les 1 dans Lieu1 et Lieu2 lorsqu'il y avait 1 dans somme et ça m'a permis de retirer le problème à sa source.
J'ai utilisé :
Code:
1 2
| Compilation$Lieu1 <- ifelse(Compilation$lesDeux ==1 & Compilation$Lieu1 == 1,0,Compilation$Lieu1)
Compilation$Lieu2 <- ifelse(Compilation$lesDeux ==1 & Compilation$Lieu2 == 1,0,Compilation$Lieu2) |
Vos solutions semblent très bien correspondre à ce que je souhaitais faire. Merci beaucoup de votre aide je suis certaine que ça me servira pour mes prochains scripts et à d'autres je l'espère aussi.