Hi List,

I'm working with some bird GPS tracking data, and I would like to exclude 
points based on the time stamp.

Some background information- the GPS loggers track each bird for just over 24 
hours, starting in the evening, and continuing through the night and the 
following day. What I would like to do is exclude points taken after 21:30 on 
the day AFTER deployment (but retain points between 21:30 and 23:59 on the day 
of deployment).

My data is set up like this:

birdID           x                     y                  datetime
15K11          492719.9        5634805      2015-06-23 18:25:00

I've tried running the code posted below.
The idea is to use the function "mutate" to create a new variable called 
newdate that takes the earliest observation for each bird and sets the date for 
cutoff as the next day at 21:30:00.

library(dplyr); library(lubridate)

df %>%
  group_by(birdID) %>%
  mutate(newdate=as.POSIXct(date(min(datetime)) + days(1) + hours(21) + 
minutes(30))) %>%
  filter(datetime<newdate)

R runs the code, but it doesn't actually change the data frame. I've double 
checked that "datetime" is POSIXct. I've also tried running the code without 
the the last line to check if R will at least create the new column "newdate", 
but it doesn't.
Any insight into why my code isn't working?

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to