【问题标题】:R get time difference with lubridateR获取与lubridate的时间差
【发布时间】:2017-03-23 22:51:41
【问题描述】:

这是我的一个数据框中的一列

7/1/2016 2:53
7/1/2016 20:56
7/2/2016 20:58
7/2/2016 21:57

我一直在使用 lubridate,它非常好,但我想知道是否有办法 1) 删除日期,以便我有时间这样它

2:53
20:56
20:58
21:57

然后也得到某个时间的差异,比如晚上 8:10 或 20:10 所以它是这样的

 -18:17
0:46
 0:48
1:47

然后可以自己获取小时或分钟值。

【问题讨论】:

    标签: r lubridate


    【解决方案1】:

    首先将列转换为正确的日期时间。
    重新格式化日期时间以将指定时间添加回基准日期。
    拿差价。

    dat$newdate <- as.POSIXct(dat$V1, format="%d/%m/%Y %H:%M")
    dat$newdate - as.POSIXct(format(dat$newdate, "%F 20:10"))
    #Time differences in mins
    #[1] -1037    46    48   107
    

    数据在哪里:

    dat  <- read.csv(text="7/1/2016 2:53
    7/1/2016 20:56
    7/2/2016 20:58
    7/2/2016 21:57", header=FALSE)
    

    【讨论】:

    • 如何使用 lubridate 做到这一点?
    • @Shah - 不知道,我从来没用过。
    • 我应该发布另一个问题,询问如何使用 lubridate 进行操作吗?
    • @Shah - 不,其他人可能很快就会来帮助你。
    【解决方案2】:

    使用润滑脂:

    library("lubridate")
    
    dat1 <- dmy_hm("7/1/2016 2:53")
    dat2 <- dmy_hm("7/1/2016 8:09")
    

    仅提取小时:分钟:

    strftime(dat1, format="%H:%M:%S", tz= "UTC")
    

    获取小时和分钟的使用:

    hour(dat1)
    minute(dat1)
    

    操作示例:

    dat2-dat1
    

    【讨论】:

      猜你喜欢
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多