Bonjour ,
j'ai un problème que je ne parvient pas à résoudre.
Je travaille sur un data.frame constitué de deux colonnes. Ces colonnes correspondent à un lieu d’échantillonnage différent.
Chaque ligne a un identifiant qui lui correspond (si besoin je peux les afficher).
cela se présente de la manière suivante :
Lieu 1 Lieu 2 12 0 123 126 21 0 87 456 6654 12
J'aimerais faire apparaître dans une nouvelle colonne la présence/Absence des éléments.
Je ne sais pas si je m'exprime bien. En gros lorsqu'il y a une séquence détectée (un chiffre présent dans la case) pour les deux lieux j'aimerais que cela indique 1 dans ma nouvelle colonne. Lorsqu'il n'est présent dans aucun ou dans un seul des deux lieux cela vaudrait 0.
Pour faire cela j'ai pensé à deux idées or je n'arrive à coder aucune des deux.
- Pour mes deux zones noter présence absence avec 1 et 0 et en faire la somme. Lorsque le résultat vaut 2 faire une boucle for pour le transformer en 1 et mettre le reste à 0.
-> J'arrive à faire absence présence mais pas la somme et la boucle.
- Faire la somme des valeurs réelles (non transformées) et faire une boucle de comparaison. Lorsque le résultat de la somme est égal à une des deux valeurs des deux lieux cela signifie qu'une des deux valeurs est égale à 0.
-> Je ne parviens dans ce cas là pas à comparer :
J'ai donc écrit le script précédent mais je tombe dans une boucle infinie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 mutate(Compilation, newcolomn= 1:nrow(Compilation)) if (Compilation$Lieu1 != Compilation$somme){ if (Compilation$Lieu2 != Compilation$somme) { newcolomn = "1" } else { newcolomn = "0" } }
Pourriez-vous m'apporter des éléments de réponses ?
Merci par avance,
Partager