【问题标题】:Create a decimal hour column from a half-hourly datetime从半小时日期时间创建十进制小时列
【发布时间】:2019-04-12 13:16:09
【问题描述】:

我想使用 POSIXct 格式的半小时日期时间列创建一个包含小数小时的新列。

基本上我的日期时间列是这样的: “2015-09-01 09:00:00、2015-09-01 09:30:00、2015-09-01 10:00:00”等...

我希望新的十进制小时列如下所示: “9、9.5、10”等...

谢谢!

【问题讨论】:

    标签: r decimal posixct hour


    【解决方案1】:

    difftime是一个很棒的小功能,如果你在这里与trunc结合,会给你答案:

    x <- as.POSIXct(c("2015-09-01 09:00:00", "2015-09-01 09:30:00", "2015-09-01 10:00:00"))
    
    difftime(x, trunc(x, units="days"), units="hours")
    #Time differences in hours
    #[1]  9.0  9.5 10.0
    

    显然,如果您希望在"mins" "days" 等中输出units= 等...

    【讨论】:

      【解决方案2】:

      我以你的一个时代为例。

      time <- as.POSIXct("2015-09-01 09:30:00", tz = "GMT")
      (as.numeric(time) %% 86400) / 3600
      [1] 9.5
      

      代码提供所需的输出。

      有关原因,请通过以下链接查看 Matthew Lundberg 的回答: Extracting time from POSIXct.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-01
        • 2018-08-06
        • 2019-04-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多