Je sèche sur un problème de voisinage de polygones...
Explications...
Je pars d'un shapefile avec les départements français (polygones) auxquels j'ai ajouté des variables / colonnes. Chacune de ces variables est une espèce codée en "0" (absence dans le département) ou "1" (présence dans le département).
Code : Tout sélectionner
> rt <- readOGR("hist_rt.shp",layer="hist_rt")
OGR data source with driver: ESRI Shapefile
Source: "C:\Users\mlagarde\Documents\R\hist_rt.shp", layer: "hist_rt"
with 96 features
It has 151 fields
Integer64 fields read as strings: ### liste des taxons ###
Code : Tout sélectionner
> class(rt)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"
Code : Tout sélectionner
> head(rt)
class : SpatialPolygonsDataFrame
features : 6
extent : 644461.3, 1077719, 6272508, 6997025 (xmin, xmax, ymin, ymax)
crs : +proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs
variables : 151
names : ID, NOM_DEP, NOM_DEP_M, INSEE_DEP, INSEE_REG, CHF_DEP, DEP_NOM, tax1, tax2, tax3, tax4, tax5, tax6, tax7, tax8, ...
min values : DEP000000000000000000001, Ain, AIN, 01, 32, 01053, Ain, 0, 0, 1, 0, 0, 0, 0, 1, ...
max values : DEP000000000000000000006, Hautes-Alpes, HAUTES ALPES, 06, 93, 06088, Hautes-Alpes, 2, 2, 2, 2, 2, 2, 2, 2, ...
Mon objectif est d'ajouter un paramètre à ces variables: "2" (présence potentielle dans le département), selon une règle très simple (et discutable): si le département A est codé "0" et est limitrophe à un département codé "1", alors le département A doit être codé "2".
Je me suis penché sur la fonction poly2nb du package spdep qui me semble répondre à mes besoins, jusqu'à obtenir la matrice de voisinage des départements:
Code : Tout sélectionner
> head(mat)
Ain Aisne Allier Alpes-de-Haute-Provence Hautes-Alpes Alpes-Maritimes Ardèche Ardennes Ariège
Ain 0 0 0 0 0 0 0 0 0
Aisne 0 0 0 0 0 0 0 1 0
Allier 0 0 0 0 0 0 0 0 0
Alpes-de-Haute-Provence 0 0 0 0 1 1 0 0 0
Hautes-Alpes 0 0 0 1 0 0 0 0 0
Alpes-Maritimes 0 0 0 1 0 0 0 0 0
Et c'est là que je sèche. Comment puis-je exploiter cette matrice pour attribuer le nouveau paramètre à chacune de mes variables "espèces"?
Et avant tout, est-ce que j'ai fait le bon choix de partir sur poly2nb ?
D'avance, merci pour vos pistes !