Я використовував gIntersectфункцію з rgeosпакета, щоб визначити, які багатокутники перетинаються у двох SpatialPolygonsDataFrames (spdfs). Результатом є логічна матриця з іменами рядків, що містять ідентифікатори полігону з sfdf # 1 та називають ідентифікатори полігону з spdf # 2. Я хотів би використовувати цю матрицю для підмноження двох оригінальних файлів spdfs, опускаючи ті багатокутники, які не перетинаються, перш ніж використовувати функцію gIntersection. Я можу легко перетворити логічну матрицю в два вектори ідентифікаторів (по одному для кожного spdf), які представляють ці багатокутники з принаймні деяким перекриттям.
Моє запитання - чи можу я використовувати вектор ідентифікаторів багатокутника для підмноження spdf? Якщо так, чи правильно вони будуть підмножувати значення в @dataслоті? Я знаю, що я, як правило, можна підмножити spdfs за допомогою цього синтаксису:
spdf[spdf@data$myVariable[someVector], ]
Це не працюватиме для ідентифікаторів, оскільки вони заглиблені набагато глибше у структурі списку spdf.
spdf[r, ])