温馨提示:本文翻译自stackoverflow.com,查看原文请点击:lubridate - How to extract the minute of the day with R?
r lubridate

lubridate - 如何用R提取一天中的分钟?

发布于 2020-03-27 11:59:20

我有一栏中df1总结了几个月的格式为“%Y-%m-%d%H:%M:%S”的日期时间。我想为每个日期时间提取一天中的分钟。即,对于时间“ 00:43:43”,一天的分钟将是“ 43”,对于日期时间“ 02:24:58”,一天的分钟将对应于“ 144”。一天中的分钟数必须介于1到1440之间。

我添加代码来复制示例:

df<-data.frame(Datetime=c("2019-07-03 00:43:43",  "2019-07-03 02:24:58"))
df$Datetime<- as.POSIXct(df$Datetime, formtat="%Y-%m-%d %H:%M:%S",tz="UTC")

df
             Datetime
1 2019-07-03 00:43:43
2 2019-07-03 02:24:58

有人知道怎么做吗?

提前致谢

查看更多

查看更多

提问者
Dekike
被浏览
14
akrun 2019-07-03 23:39

一个选项是

library(lubridate)
round(period_to_seconds(hms(v1))/60)

如果我们不希望round

sub("\\..*", "", period_to_seconds(hms(v1))/60)
#[1] "43"  "144"

更新资料

在OP的初始帖子中,显示的格式为%H:%M:%S,因此我们使用hms在显示示例的情况下,ymd_hms

v2 <- sub(".*\\s", "", df$Datetime)
sub("\\..*", "", period_to_seconds(hms(v2))/60)
#[1] "43"  "144"

数据

v1 <- c("00:43:43",  "02:24:58")