[R] filtering data by the time stamp

Alice Domalik 9add2 at queensu.ca
Wed Jun 22 00:57:54 CEST 2016


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]]



More information about the R-help mailing list