2017-11-23 16 views
0

のサブセットんここに私のデータのサンプルです:R:どのように私は、条件付きのDateTimeデータに基づいて

# A tibble: 4 x 3 
    Squirrel.ID Release.time DetectTime 
     <int> <S4: Period> <dttm> 
1  13097 13H 13M 18S 2017-05-29 18:50:43 
2  20948 10H 15M 8S 2017-06-05 08:09:48 
3  21853 11H 20M 33S 2017-05-24 21:57:32 
4  13088 12H 13M 45S 2017-05-30 08:44:03 

私は敬遠しがちDetectTime値は前少なくとも 1.5時間にを発生した行のためにそれをサブセットしていますよRelease.timeの値。たとえば、DetectTimeの値が"2017-05-30 06:00:00"Release.timeの値が"10:00:00"の場合、その行を保持したいと考えています。 DetectTimeの値が"2017-05-30 10:15:00"で、Release.timeの値が"10:00:00"の場合は、その行を除外したいと考えています。

私はdplyrlubridateと協力しています。ありがとうございました。

+0

が簡単になります'Period'よりも' DetectTime'と同じです。 – neilfws

答えて

0

あなたのデータの複製:

library(lubridate) 

df <- data.frame(Squirrel.ID = c(13097, 20948, 21853, 13088), 
     Release.time = c("13H 13M 18S", "10H 15M 8S", "11H 20M 33S", "12H 13M 45S"), 
     DetectTime = c("2017-05-29 18:50:43", "2017-06-05 08:09:48", "2017-05-24 21:57:32", "2017-05-30 08:44:03")) 
df$Release.time <- hms(df$Release.time) 


# Squirrel.ID Release.time   DetectTime 
#1  13097 13H 13M 18S 2017-05-29 18:50:43 
#2  20948 10H 15M 8S 2017-06-05 08:09:48 
#3  21853 11H 20M 33S 2017-05-24 21:57:32 
#4  13088 12H 13M 45S 2017-05-30 08:44:03 

ソリューション:

library(lubridate) 
df[df$Release.time - hms(strftime(df$DetectTime, format="%H:%M:%S")) >= "1H 30M",] 

出力:Release.time`は `DateTime`た`場合には、このような感じ

# Squirrel.ID Release.time    DetectTime 
#2  20948 10H 15M 8S 2017-06-05 08:09:48 
#4  13088 12H 13M 45S 2017-05-30 08:44:03 
関連する問題