Je travaille sur un jeu de données avec des mousses et des hépatiques échantillonnées le long d'un gradient altitudinal. 11 altitudes ont été échantillonnées entre 350m et 2750m (tout les 200m).
La gamme altitudinale d'une espèce est définis comme l'aire entre l'altitude minimum et l'altitude maximum où celle-ci a été retrouvé. Pour ce faire, le postulat qu'une espèce est forcément présente entre ce minimum et ce maximum est nécessaire. Ce que j'aimerais est donc de vérifier que cela ne soit pas trop fort de café.
Je cherche donc (voir l'exemple de jeu de donné reproductible ci-dessous) à retrouver les espèces qui sont absente de TOUTES les altitudes entre leur maximum et minimum.
Cela sera peut être plus claire avec un exemple (1 présente 0 absente) :
350 m 550m 750m 950m 1150m
espèces A : 0 1 1 0 1
espèce B : 1 0 0 0 1
espèce C : 0 0 1 1 1
Dans cet exemple, je souhaite retrouver l'espèce B. Seulement, j'ai du mal à avoir un code afin d'arriver à cela. J'ai pensé à quelque chose de la sorte if_else(espèce, si la somme entre 1er "1" et dernier "1" = 0, alors considérer cette espèce). Mais je ne vois vraiment pas comment écrire cela.
J'espère que j'ai été assez claire dans mes explications, ci-contre un code reproductible (où ici AEROSUBPM est la catégorie d'espèce recherchée) :
Code : Tout sélectionner
> PA_brk%>%
+ dplyr::select(1:6)%>%
+ slice(1:10)%>%
+ dput()
structure(list(alti = c(350, 550, 750, 950, 1150, 1350, 1550,
1750, 1950, 2150), ACROEMER = c(0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 0L), ACROMEGA = c(0, 1, 1, 1, 1, 0, 1, 0, 0, 0), AEROSUBPM = c(0,
1, 0, 1, 0, 0, 0, 0, 0, 0), AMAZDIPL = c(0, 0, 0, 0, 1, 0, 0,
0, 0, 0), ANASAURI = c(0, 0, 1, 0, 0, 0, 1, 0, 1, 0)), row.names = c(NA,
-10L), class = "data.frame")
Merci d'avance pour votre aide !