Podzbiór SpatialPolygonsDataFrame według ID w R?

13

Użyłem gIntersectfunkcji z rgeospakietu, aby określić, które wielokąty przecinają się w dwóch SpatialPolygonsDataFrames (spdfs). Rezultatem jest logiczna macierz z nazwami rud zawierającymi identyfikatory wieloboków z sfdf # 1 i nazwami identyfikatorów wielokątów z spdf # 2. Chciałbym użyć tej macierzy do podzestawienia dwóch oryginalnych plików pdf, pomijając te wielokąty, które nie nakładają się, przed użyciem funkcji gIntersection. Mogę łatwo przekonwertować matrycę logiczną na dwa wektory identyfikatorów (po jednym dla każdego pliku spdf), które reprezentują te wielokąty, które przynajmniej częściowo się pokrywają.

Moje pytanie brzmi - czy mogę użyć wektora identyfikatorów wielokątów do podzbioru pliku spdf? Jeśli tak, czy prawidłowo podmieni wartości w @datagnieździe? Wiem, że ogólnie mogę podgrupować pliki spdf przy użyciu tej składni:

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

To nie zadziała w przypadku identyfikatorów, ponieważ są one zakopane znacznie głębiej w strukturze listy spdf.

Alberto
źródło

Odpowiedzi:

11

Identyfikatory macierzy zwrócone z gIntersect powinny odpowiadać nazwom plików w każdym źródłowym obiekcie sp. Powinieneś być w stanie po prostu zindeksować pozycję nazw rown, aby rozdzielić dane.

r <- c(1,5,3,9,10)
sp.polys <- sp.polys[r,]
Jeffrey Evans
źródło
Chcę tylko sprawdzić - czy to zadziała również bezpośrednio na obiekcie spdf? (tj. spdf[r, ])
Alberto
Tak, działa na obiektach sp, a indeks propaguje się poprzez identyfikatory, które łączą wszystkie obiekty szczelin, które odpowiadają nazwom @data.
Jeffrey Evans
Może nie czytam poprawnie, ale wygląda to nieco źle? Powinieneś wyodrębnić ciąg znaków r nazw wierszy, używając liczb całkowitych, wyodrębnisz go normalnie
MichaelChirico
@MichaelChirico za zwrócenie znanej pozycji wiersza, jest to poprawne. Jeśli znasz tylko wartość nazw wierszy, możesz utworzyć indeks, używając czegoś takiego (co (nazwy rown (x)% w% c (1,5)) i, chyba że prawdziwy ciąg znaków jest przypisany do nazw rown wartości nie muszą być cytowane. Domyślne nazwy to cytowany wektor 1: n
Jeffrey Evans