我试图从R.中的chron时间中提取出这个小时,对lubridate::hour的帮助如下:
日期-时间必须是一个POSIXct,POSIXlt,日期,期间,时间,一年,一年,动物园,timeDate,xts,its,ti,jul,timeSeries和fts对象.
但这似乎行不通:
library(chron)
library(lubridate)
hour(chron(times. = "01:02:03"))给出误差
Error in as.POSIXlt.default(x, tz = tz(x)) :
do not know how to convert 'x' to class “POSIXlt”这是个虫子吗?
我知道使用chron::hours是可能的,这在大多数情况下是可取的。但是lubridate的部分吸引力在于拥有一组函数来处理各种日期时间数据,而必须在任何地方将hour更改为hours都有悖于此。
发布于 2015-12-08 13:16:53
问题是下面的tt:
library(chron)
tt <- chron(times. = "01:02:03")
class(tt)
## [1] "times"实际上不是"chron"类的。它是"times"类的。
1)它也需要一个日期部分才能属于"chron"类,这样就可以工作了:
library(lubridate)
hour(chron(0, tt))
## [1] 12)或:
hour(as.chron(tt)) # as.chron always produces a chron object
## [1] 13)是一种不使用lubridate的替代方法,它基于以下事实: chron代表一天,因为1×1小时是1/24:
trunc(24 * as.numeric(tt))
## [1] 1https://stackoverflow.com/questions/34140048
复制相似问题