J'ai un cadre de données df
avec 5 colonnes. Region.Label
indique la région où l'étude a été réalisée, Sample.Label
est une zone spécifique de cette région où j'ai compté les oiseaux, Sp
est l'espèce d'oiseau que j'ai trouvée dans cette zone spécifique, Distance
est la distance entre l'oiseau et moi, et Effort
est l'époque où j'étais dans la région à la recherche d'oiseaux. Quand Distance
es NA
signifie que l'espèce n'a pas été observée dans cette zone. Voici un exemple de cadre de données que j'ai :
df <- data.frame(Region.Label=c("A","A","A","A","A","A","A","A"),
Sample.Label=c(1,1,1,2,2,2,3,3),
Sp=c("ZZ","ZZ","BB","ZZ","BB","CC","ZZ","BB"),
Distance=c(2,7,NA,NA,NA,6,NA,NA),
Effort=c(99,99,99,87,87,87,72,72))
df$Region.Label <- as.factor(df$Region.Label)
df$Sample.Label <- as.numeric(df$Sample.Label)
df
Region.Label Sample.Label Sp Distance Effort
1 A 1 ZZ 2 99
2 A 1 ZZ 7 99
3 A 1 BB NA 99
4 A 2 ZZ NA 87
5 A 2 BB NA 87
6 A 2 CC 6 87
7 A 3 ZZ NA 72
8 A 3 BB NA 72
Ici, je voudrais supprimer toutes les lignes qui ont NA
pour la colonne df$Distance
car il indique que l'espèce n'a pas été observée dans la zone, mais je veux supprimer les lignes avec NA
para df$Distance
lorsque cette rangée avec le NA
est un doublon d'une autre ligne excluant la colonne df$Sp
.
J'aimerais l'obtenir :
Region.Label Sample.Label Sp Distance Effort
1 A 1 ZZ 2 99
2 A 1 ZZ 7 99
3 A 2 CC 6 87
4 A 3 ZZ NA 72
Dans cet exemple, je ne supprime pas df[7,]
parce que le Sample.Label
est différente des lignes précédentes. J'enlève df[8,]
porque df[7,]
y df[8,]
sont égaux, à l'exception de df$Sp
.
Quelqu'un sait-il comment obtenir ce que je veux ?