R语言 将字符转换为带小时和分钟的日期

w41d8nur  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(220)

我有麻烦转换字符值为日期(小时+分钟),我有以下代码:

start <- c("2022-01-10 9:35PM","2022-01-10 10:35PM")
end <- c("2022-01-11 7:00AM","2022-01-11 8:00AM")
dat <- data.frame(start,end)

这些都是字符形式。我想:
1.将所有日期时间转换为日期格式和24小时格式,如下所示:“2022-01-10 9:35 PM”转换为“2022-01-10 21:35”,“2022-01-11 7:00 AM”转换为“2022-01-11 7:00”,因为我想以小时为单位计算日期之间的差异。
1.我还想添加一个ID列,该列具有特定的ID,所需的数据如下所示:

ID <- c(101,101)
start <- c("2022-01-10 21:35","2022-01-10 22:35")
end <- c("2022-01-11 7:00","2022-01-11 8:00")
diff <- c(9,10) # I'm not sure how the calculations would turn out to be 
dat <- data.frame(ID,start,end,diff)

我会很感激所有的帮助!谢谢!

kq4fsx7k

kq4fsx7k1#

您可以使用lubridate::ymd_hm。如果需要确切的值,请不要使用floor

library(dplyr)
library(lubridate)
dat %>% 
  mutate(ID = 101,
         across(c(start, end), ymd_hm),
         diff = floor(end - start))

                start                 end  ID    diff
1 2022-01-10 21:35:00 2022-01-11 07:00:00 101 9 hours
2 2022-01-10 22:35:00 2022-01-11 08:00:00 101 9 hours

strptime的基R方法为:

strptime(dat$start, "%Y-%m-%d %H:%M %p")
[1] "2022-01-10 09:35:00 CET" "2022-01-10 10:35:00 CET"

相关问题