2016-12-22 3 views
1

J'ai un raster et j'ai besoin de comparer les valeurs de la première et dernière rangée. (Je veux savoir, s'il y a un groupe qui se connecte en haut avec le bas) C'est ce que je l'ai fait:Comment utiliser lapplication sur une liste de rasters

V1=getValues(r,row=1) 
V1=V1[V1!=0] 
V1=unique(V1) 

et même avec la dernière ligne. Puis-je faire cela:

V1 %in% V2 

C'est correct. Ça marche. Mais j'ai besoin de faire cela avec beaucoup de rasters. J'ai pensé créer une liste avec ces rasters et lancer le script ci-dessus sur tous les rasters de la liste. Je pensais pouvoir faire ça avec lapply mais je ne sais pas comment faire ça.

Ou peut-être il y a une possibilité d'obtenir une sorte de dataframe dos ou quelque chose comme ça

raster  connected 
r1   TRUE 
r2   FALSE 
r3   FALSE 
...  ... 

Répondre

1
FUN.raster <- function(r) { 
    x <- getValues(r, row = 1) 
    x <- x[x!=0] 
    x <- unique(x) 

    y <- getValues(r, row = nrow(r)) 
    y <- y[y!=0] 
    y <- unique(y) 

    x %in% y 
} 

puis

sapply(rasterlist, FUN.raster) 

Cela vous donne un vecteur booléen de TRUE/FALSE avec le La longueur de votre rasterlist. Notez que ceci n'a pas été testé, car vous n'avez fourni aucun exemple de données.