coast<-readShapeSpatial("coastline.shp")
landc<-readShapeSpatial("landcover.shp")
ro<-readShapeSpatial("roads.shp")
bc<-gBuffer(ro,width=100)
landc$ratings=1
landc$ratings[landc$LANDUSE_ID==4]=0
Ci-dessus, je prends n'importe quelle catégorie qui a 4 et dans la nouvelle colonne, je la mets à 0.
À ce stade, je veux que la colonne soit également nommée ratings
pour le bc
, où elle prendra 0 si elle est à l'intérieur du tampon et 1 si elle est à l'extérieur. Le problème est que le bc
est SpatialPolygons
et qu'il ne contient pas la table attributaire.
Évidemment, pour ajouter une colonne à un SpatialPolygon
objet, vous devez la convertir en un SpatialPolygonsDataFrame
, mais je ne sais pas comment.
J'ai essayé ceci:
buf_df<-as.data.frame(bc)
s_po<-SpatialPolygonsDataFrame(bc,buf_df)
s_po$ratings=0
mais cette erreur apparaît:
row.names of data and Polygons IDs do not match