Subset dataset with time condition in R -
i have dataset in example.txt
"09/jan/2016" "05:00:22" "304" 449 "09/jan/2016" "07:00:12" "304" 449 "09/jan/2016" "10:00:02" "200" 10575 "09/jan/2016" "11:00:03" "304" 449 "09/jan/2016" "13:00:03" "304" 449 "09/jan/2016" "20:00:03" "304" 449 "09/jan/2016" "23:00:03" "304" 450 "10/jan/2016" "00:00:03" "304" 449 "10/jan/2016" "03:00:03" "304" 449 "10/jan/2016" "04:00:03" "304" 449
can subset dataset range 6 hour before run code in r? example, open , run code in january 10th, @ 4:15, want subset dataset, like
"09/jan/2016" "23:00:03" "304" 450 "10/jan/2016" "00:00:03" "304" 449 "10/jan/2016" "03:00:03" "304" 449 "10/jan/2016" "04:00:03" "304" 449
what function should use question? , how use it? thank answer ..
assuming 4 columns have , have names v1
, v2
, v3
, v4
, dataframe df
you can in base r
mergeddatetime <- as.posixct(paste(df$v1, df$v2), format = "%d/%b/%y %h:%m:%s") df[(sys.time() - 6*60*60) < mergeddatetime & sys.time() > mergeddatetime, ]
for given example work as,
x <- "01/10/2016 04:15:00" mergeddatetime <- as.posixct(paste(df$v1, df$v2), format = "%d/%b/%y %h:%m:%s") df[(as.posixct(x, format = "%m/%d/%y %h:%m:%s") - 6*60*60) < mergeddatetime & as.posixct(x, format = "%m/%d/%y %h:%m:%s") > mergeddatetime, ] # v1 v2 v3 v4 #7 09/jan/2016 23:00:03 304 450 #8 10/jan/2016 00:00:03 304 449 #9 10/jan/2016 03:00:03 304 449 #10 10/jan/2016 04:00:03 304 449
Comments
Post a Comment