我在试着把一个光周期物体转到最近的一分钟。
library(lubridate)
round_date(as.period("2d 20H 22M 9.57S"))给出
Error in as.POSIXct.numeric(x) : 'origin' must be supplied因此,round_date正在将我的月经转换为POSIXct,但为什么呢?是否有可能在不将周期转换成另一种格式的情况下对周期进行循环?好像我错过了一些简单的东西。
谢谢!
发布于 2020-11-12 10:01:58
既然这个问题已经被打开,现在就可以绕过lubridate Period了,如这个thread所示。下面是您的例子:
library("lubridate")
round(as.period("2d 20H 22M 9.57S"))
[1] "2d 20H 22M 10S"发布于 2016-12-29 01:14:39
根据?round_date的说法,函数需要一个日期时间对象的向量作为第一个参数.因此,它不打算用于句点对象。
在?as.period中可以找到为什么不可能绕过一个周期对象的解释:一个时间段中每个时间单位的确切长度将取决于它发生的时间。..。例如,当一个闰秒发生时,一分钟大于60秒。
lubridate非常仔细地区分了Duration、Interval和Period类。
发布于 2020-04-04 04:26:21
我绝对认为最好的办法是把它转换成数字,也就是说,在几秒钟内,把它除以60分钟,然后乘以60使它变成秒,然后把它整起来,然后周期。然后你会得到最近的一分钟。
seconds_to_period(round(as.numeric(as.period("2d 20H 22M 9.57S"))/60)*60)
[1] "2d 20H 22M 0S"如果要近似于秒,可以执行以下操作
seconds_to_period(round(as.numeric(as.period("2d 20H 22M 9.57S"))))
[1] "2d 20H 22M 10S"https://stackoverflow.com/questions/41189244
复制相似问题