У меня есть фрейм данных с 6 столбцами и множеством строк, который включает позиции для отдельной помеченной рыбы. Структура выглядит следующим образом:
голова (tag.29912)
Date.and.Time..UTC. Receiver Transmitter Latitude Longitude ndiffs29912
1 07/10/2010 15:53 VR2W-107619 A69-1303-29912 48.56225 -53.89144 NA
2 07/10/2010 15:56 VR2W-107619 A69-1303-29912 48.56225 -53.89144 180
3 07/10/2010 16:00 VR2W-107619 A69-1303-29912 48.56225 -53.89144 240
4 07/10/2010 16:24 VR2W-107619 A69-1303-29912 48.56225 -53.89144 1440
5 07/10/2010 16:45 VR2W-104556 A69-1303-29912 48.56460 -53.88956 1260
6 07/10/2010 16:47 VR2W-107619 A69-1303-29912 48.56225 -53.89144 120
ndiffs29912 относится к разнице во времени между обнаружениями - следовательно, в первой строке есть NA, потому что нет ничего предыдущего для вычисления разницы во времени.
Я хотел бы отфильтровать любые одиночные обнаружения, которые происходят в течение 24 часов (86400 секунд), потому что они, скорее всего, ложные. Я попытался следующий код, чтобы попытаться удалить их:
for (i in 1:length(tag.29912)) {
if (tag.29912[i,6]>=86400 & tag.29912[i+1,6]>=86400)
{rm(i)}
Это не сработало. Я также попробовал:
for (i in 1:length(tag.29912)) {
if (tag.29912[i,6]>=86400 & tag.29912[i+1,6]>=86400)
{new<-tag.29912[i,]}
else{filteredtag.29912<-as.data.frame(tag.29912[-new])}
}
безрезультатно. В конечном счете, я хотел бы новый фрейм данных со всеми удаленными обнаружениями.
Любые советы будут с благодарностью !!