Đặt một SpatialPolygonsDataFrame bằng ID trong R?


13

Tôi đã sử dụng gIntersecthàm từ rgeosgói để xác định đa giác nào giao nhau trong hai SpatialPolygonsDataFrames (spdfs). Kết quả là một ma trận logic với các tên gọi bao gồm các ID đa giác từ sfdf # 1 và đặt tên cho các ID đa giác từ spdf # 2. Tôi muốn sử dụng ma trận này để tập hợp hai spdf gốc, bỏ qua các đa giác không có sự trùng lặp trước khi sử dụng hàm gIntersection. Tôi có thể dễ dàng chuyển đổi ma trận logic thành hai vectơ ID (một cho mỗi spdf) đại diện cho các đa giác đó với ít nhất một số chồng chéo.

Câu hỏi của tôi là - tôi có thể sử dụng một vectơ ID đa giác để đặt một spdf không? Nếu vậy, nó sẽ tập hợp chính xác các giá trị trong @datakhe? Tôi biết tôi thường có thể tập hợp các spdfs bằng cú pháp này:

spdf[spdf@data$myVariable[someVector], ]

Điều này sẽ không hoạt động đối với ID, vì chúng được chôn sâu hơn nhiều trong cấu trúc danh sách spdf.

Câu trả lời:


11

Các id ma trận được trả về từ gIntersect sẽ tương ứng với các tên miền trong mỗi đối tượng sp nguồn. Bạn sẽ có thể chỉ mục vị trí rownames để tập hợp dữ liệu.

r <- c(1,5,3,9,10)
sp.polys <- sp.polys[r,]

Tôi chỉ muốn kiểm tra - cái này cũng sẽ hoạt động trực tiếp trên đối tượng spdf chứ? (tức là spdf[r, ])
Alberto

Có, nó hoạt động trên các đối tượng sp và chỉ mục truyền qua ID liên kết tất cả các đối tượng vị trí, tương ứng với các tên miền @data.
Jeffrey Evans

Có lẽ tôi không đọc đúng nhưng điều này có vẻ hơi sai? Bạn nên trích xuất một chuỗi r tên hàng, sử dụng số nguyên sẽ trích xuất thông thường
MichaelChirico

@MichaelChirico cho việc trả lại một vị trí hàng đã biết điều này là chính xác. Nếu bạn chỉ biết giá trị của (các) tên hàng thì bạn có thể tạo chỉ mục bằng cách sử dụng một cái gì đó giống như (rownames (x)% trong% c (1,5)) và, trừ khi một chuỗi ký tự thực được gán cho các tên gọi hơn các giá trị không cần phải được trích dẫn. Các rownames mặc định là một vector trích dẫn 1: n
Jeffrey Evans
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.