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
Ở trên, tôi lấy bất kỳ danh mục nào có 4 và trong cột mới đặt nó là 0.
Tại thời điểm này, tôi muốn cột cũng được đặt tên ratingscho bc, trong đó nó sẽ lấy 0 nếu nó nằm trong bộ đệm và 1 nếu nó ở bên ngoài. Vấn đề là các bclà SpatialPolygonsvà nó không chứa các bảng thuộc tính.
Rõ ràng để thêm một cột vào một SpatialPolygonđối tượng bạn phải chuyển đổi nó thành một SpatialPolygonsDataFrame, nhưng tôi không biết làm thế nào.
Tôi đã thử điều này:
buf_df<-as.data.frame(bc)
s_po<-SpatialPolygonsDataFrame(bc,buf_df)
s_po$ratings=0
nhưng lỗi này bật lên:
row.names of data and Polygons IDs do not match