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.

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,]

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.