【问题标题】:how do you pick the hour, minute and second from the posixct formated datetime in R你如何从R中的posixct格式日期时间中选择小时、分钟和秒
【发布时间】:2013-08-06 14:50:53
【问题描述】:

我有一个这样的数据框:

dput(tail(x,10))
structure(list(DATE = structure(c(1375725600, 1375729200, 1375732800, 
1375736400, 1375740000, 1375743600, 1375747200, 1375750800, 1375754400, 
1375758000), class = c("POSIXct", "POSIXt"), tzone = ""), VOLUME = c(2790797L, 
2670868L, 2586397L, 2470043L, 2336334L, 2228206L, 2129270L, 2032518L, 
872133L, 725377L), PC = c(10.12, 9.95, 9.9, 9.46, 8.99, 8.94, 
9.79, 8.45, 8.85, 8.5)), .Names = c("DATE", "VOLUME", "PC"), row.names = 3399:3408, class = "data.frame")

我需要为时间创建另一个列,以便我可以在一天中的不同时间之间进行选择。

我试过这个:

x$time<-format(x$DATE, "%H:%M:%S)

没用,我得到的是空值。

我也试过这个:

x$t<-strptime(x$DATE, format="%H:%M:%S") 

我得到 NA 值。我的 x$DATE 格式为 POSIXct,有什么想法可以在这里做吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用lubridate 获取日期的小时、分钟和秒的组件:

    library(lubridate)
    transform(x,time.str = format(DATE,'%H:%M:%S'),
                  hour = hour(DATE),
                  minute = minute(DATE),
                  second= second(DATE))
    
                        DATE  VOLUME    PC time.str hour minute second
    3399 2013-08-05 20:00:00 2790797 10.12 20:00:00   20      0      0
    3400 2013-08-05 21:00:00 2670868  9.95 21:00:00   21      0      0
    3401 2013-08-05 22:00:00 2586397  9.90 22:00:00   22      0      0
    3402 2013-08-05 23:00:00 2470043  9.46 23:00:00   23      0      0
    3403 2013-08-06 00:00:00 2336334  8.99 00:00:00    0      0      0
    3404 2013-08-06 01:00:00 2228206  8.94 01:00:00    1      0      0
    3405 2013-08-06 02:00:00 2129270  9.79 02:00:00    2      0      0
    3406 2013-08-06 03:00:00 2032518  8.45 03:00:00    3      0      0
    3407 2013-08-06 04:00:00  872133  8.85 04:00:00    4      0      0
    3408 2013-08-06 05:00:00  725377  8.50 05:00:00    5      0      0
    

    【讨论】:

      【解决方案2】:

      这行得通:

      x$t<-strftime(x$DATE, format="%H:%M:%S")
      

      【讨论】:

      • 真的吗?你想转换成字符串吗?
      猜你喜欢
      • 2019-05-30
      • 2017-06-10
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多