Как удалить строки фрейма данных, используя отдельный вектор - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь отфильтровать фрейм данных, содержащий местоположения Аргоса любых неправдоподобных местоположений, используя функцию sdafilter, которая является частью пакета argosfilter.

Это раздел векторного вывода при запуске sdafilter, он имеет 3 элемента:

  1. «удален» (местоположение удалено фильтром)
  2. «end_location» (местоположение в конце дорожки, где алгоритм не может быть применен)
  3. «not» (местоположение не удалено):

[1] "end_location" "end_location" "removed" "removed" "removed"
[6] "removed" "removed" "not" "not" "not"
[11] "not" "removed" "not" "not" "removed"
[16] "not" "not" "not" "not" "removed"
[21] "not" "not" "not" "not" "not"
[26] "not" "not" "not" "not" "not"

Точки данных, которые возвращаются в векторе как «удаленные», являются точками, которые неправдоподобны с учетом заданных критериев, указанных в функции sdafilter. Я хочу применить этот вектор к моему фрейму данных, чтобы удалить все строки, которые соответствуют тому, где «удалено» отображается в векторе.

Буду признателен за любые предложения или помощь.

1 Ответ

0 голосов
/ 24 января 2020

Я предлагаю вам взглянуть на следующий пример .

Если вы хотите специально сохранить неотфильтрованные значения в новом фрейме данных, вы можете использовать cbind, как в примере ниже:

library(argosfilter)

data(seal)
lat<-seal$lat
lon<-seal$lon
dtime<-seal$dtime

mfilter<-vmask(lat,lon,dtime,2)

lon[4:8]
lat[4:8]
mfilter[4:8]
not_Removed <- cbind(lon[which(mfilter=="not")],lat[which(mfilter=="not")])
not_Removed[1:5,1:2]
...