【发布时间】:2018-11-21 05:48:10
【问题描述】:
我正在从 R 中的 dttm 对象中提取时间数据并将其格式化为 HH:MM。我已经能够使用
paste(hour(datetime), minute(datetime), sep=':')
有一个例外:当分钟小于 10 时。当我这样做时,分钟函数只返回不带前导 0 的分钟。例如:
library(lubridate)
datetime = ymd_hms('2018-11-18 14:00:00')
minute(datetime)
这给出了
的输出> minute(datetime)
[1] 0
我相信有使用 hms 或其他包/功能的选项,或者通过构建 if-then,但我想尽量减少依赖性和复杂性,并尽可能坚持 lubridate 的细节以实现我的目标。
(注意:我意识到 hour() 也存在同样的问题,但我使用的所有时间都是 PM,所以在我的情况下并不那么紧迫)。
【问题讨论】:
-
您的数据有 14 小时 0 分钟,所以很明显它会将分钟作为 0 更改为 14:30 ,它会给您输出 30
-
sprintf("%02d", minute(datetime))?