R удалить точки из SpatialPointsDataFrame - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть SPointsDataFrame с 130 obs (outBuff1) и числовым c списком из 96 индексов, которые нужно удалить из этого (inBuff2id)

> str(outBuff1)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 130 obs. of  8 variables:
  .. ..$ RamID   : chr [1:130] "01BC" "01BC" "02BC" "02BC" ...
  .. ..$ Long    : num [1:130] -121 -121 -121 -121 -121 ...
  .. ..$ Lat     : num [1:130] 50.8 50.8 50.8 50.8 50.8 ...
  .. ..$ CollarID: int [1:130] 34448 34448 ...
  .. ..$ Herd    : chr [1:130] "Cattle Creek" "Cattle Creek" ...
  .. ..$ PDate   : chr [1:130] "2012-11-29 08:09:00" "2012-11-29 08:10:00" ...
  .. ..$ x       : num [1:130] 622472 622596 624274 ...
  .. ..$ y       : num [1:130] 5634417 5630417 5634329 ...
  ..@ coords.nrs : num(0) 
  ..@ coords     : num [1:130, 1:2] 622572 622596 622274 645136 622479 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
  ..@ bbox       : num [1:2, 1:2] 621559 5625613 653404 5630507
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
  .. .. ..@ projargs: chr "+proj=utm +zone=10 +ellps=WGS84 +units=m +no_defs"

> str(inBuff2id)
 num [1:96] 112 113 114 115 277 278 279 280 281 282 ...

Я хочу удалить эти индексы из SPDF, звучит просто:

outBuff2=outBuff1[-inBuff2id,]

НО:

> str(outBuff2)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 126 obs. of  8 variables:
  .. ..$ RamID   : chr [1:126] "01BC" "01BC" "02BC" "02BC" ...
  .. ..$ Long    : num [1:126] -121 -121 -121 -121 -121 ...
  .. ..$ Lat     : num [1:126] 50.8 50.8 50.8 50.8 50.8 ...
  .. ..$ CollarID: int [1:126] 34848 34848 34878 34878 34878 34878 34878 34878 34878 34878 ...
  .. ..$ Herd    : chr [1:126] "Cattle Creek" "Cattle Creek" ...
  .. ..$ PDate   : chr [1:126] "2012-11-29 08:09:00" "2012-11-29 08:10:00" ...
  .. ..$ x       : num [1:126] 622472 622596 624274 ...
  .. ..$ y       : num [1:126] 5634417 5630417 5634329 ...
  ..@ coords.nrs : num(0) 
  ..@ coords     : num [1:126, 1:2] 622572 622596 622274 645136 622479 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
  ..@ bbox       : num [1:2, 1:2] 622274 5625613 653404 5630507
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "coords.x1" "coords.x2"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
  .. .. ..@ projargs: chr "+proj=utm +zone=10 +ellps=WGS84 +units=m +no_defs"

Удаление 96 аксов из 130 дает мне 126 аксов?!?! В чем здесь моя ошибка ??

Я делал это несколько раз для разных точек, ОБЫЧНО выдает мне правильный результат (математика подходит), но иногда я получаю что-то , что явно неправильно. Почему я получаю это?

Любые предложения будут высоко оценены!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...