首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lubridate不能绕过周期对象

Lubridate不能绕过周期对象
EN

Stack Overflow用户
提问于 2016-12-16 17:09:53
回答 3查看 910关注 0票数 1

我在试着把一个光周期物体转到最近的一分钟。

代码语言:javascript
复制
library(lubridate)
round_date(as.period("2d 20H 22M 9.57S"))

给出

代码语言:javascript
复制
Error in as.POSIXct.numeric(x) : 'origin' must be supplied

因此,round_date正在将我的月经转换为POSIXct,但为什么呢?是否有可能在不将周期转换成另一种格式的情况下对周期进行循环?好像我错过了一些简单的东西。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-11-12 10:01:58

既然这个问题已经被打开,现在就可以绕过lubridate Period了,如这个thread所示。下面是您的例子:

代码语言:javascript
复制
library("lubridate")  
round(as.period("2d 20H 22M 9.57S"))  
[1] "2d 20H 22M 10S"
票数 3
EN

Stack Overflow用户

发布于 2016-12-29 01:14:39

根据?round_date的说法,函数需要一个日期时间对象的向量作为第一个参数.因此,它不打算用于句点对象。

?as.period中可以找到为什么不可能绕过一个周期对象的解释:一个时间段中每个时间单位的确切长度将取决于它发生的时间。..。例如,当一个闰秒发生时,一分钟大于60秒。

lubridate非常仔细地区分了DurationIntervalPeriod类。

票数 2
EN

Stack Overflow用户

发布于 2020-04-04 04:26:21

我绝对认为最好的办法是把它转换成数字,也就是说,在几秒钟内,把它除以60分钟,然后乘以60使它变成秒,然后把它整起来,然后周期。然后你会得到最近的一分钟。

代码语言:javascript
复制
seconds_to_period(round(as.numeric(as.period("2d 20H 22M 9.57S"))/60)*60)
[1] "2d 20H 22M 0S"

如果要近似于秒,可以执行以下操作

代码语言:javascript
复制
seconds_to_period(round(as.numeric(as.period("2d 20H 22M 9.57S"))))
[1] "2d 20H 22M 10S"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41189244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档