How to find different elements of two time vectors?

前端 未结 2 625
面向向阳花
面向向阳花 2021-01-13 02:16

Considering these two time vectors:

a<-seq(as.POSIXct(\"2010-01-01 05:00:00\"), as.POSIXct(\"2010-01-02 23:55:00\"), by = \'5 min\')
b<-seq(as.POSIXct(         


        
相关标签:
2条回答
  • 2021-01-13 02:50

    This will also work (using the default origin):

    as.POSIXct(union(setdiff(a, b), setdiff(b, a)), origin = '1970-01-01')
    
    #[1] "2010-01-01 05:05:00 IST" "2010-01-01 05:15:00 IST" "2010-01-01 05:25:00 IST" "2010-01-01 05:35:00 IST" "2010-01-01 05:45:00 IST"
    #[6] "2010-01-01 05:55:00 IST" "2010-01-01 06:05:00 IST" "2010-01-01 06:15:00 IST" "2010-01-01 06:25:00 IST" "2010-01-01 06:35:00 IST"
    
    # this checks a U b = (a - b) U (b - a) U (a /\ b) for PoSIxct objects, should evaluate to true
    all(sort(as.POSIXct(union(union(setdiff(a, b), setdiff(b, a)), intersect(a, b)), origin = '1970-01-01')) == sort(as.POSIXct(union(a, b), origin = '1970-01-01')))
    # TRUE
    
    0 讨论(0)
  • 2021-01-13 02:58

    This uses only operations that preserve "POSIXct" class:

    c(a[!a %in% b], b[!b %in% a])
    
    0 讨论(0)
提交回复
热议问题