【发布时间】:2022-01-05 01:22:38
【问题描述】:
我正在尝试将 HH:MM:SS 中的时间转换为日期为 R 中的 YYYY-MM-DD 占午夜。
时间跨度从第 1 天的早上到第 2 天的早上,但我想创建一个具有特定日期的新列,其中午夜之后的时间表示新的一天。这是一个例子:
当前数据:
structure(list(ID = c("ID_002", "ID_002", "ID_002", "ID_002",
"ID_002", "ID_002", "ID_002", "ID_002", "ID_002", "ID_002", "ID_002",
"ID_002", "ID_002", "ID_002", "ID_002", "ID_002", "ID_002", "ID_002",
"ID_002", "ID_002", "ID_002", "ID_002", "ID_002", "ID_002", "ID_002",
"ID_002", "ID_002", "ID_002", "ID_002"), Time = c("05:01:00",
"06:01:00", "07:01:00", "08:01:00", "09:01:00", "10:01:00", "11:01:00",
"12:01:00", "13:01:00", "14:01:00", "15:01:00", "16:01:00", "17:01:00",
"18:01:00", "19:01:00", "20:01:00", "21:01:00", "22:01:00", "23:01:00",
"00:01:00", "01:01:00", "02:01:00", "03:01:00", "04:01:00", "05:01:00",
"06:01:00", "07:01:00", "08:01:00", "09:01:00")), row.names = c(NA,
29L), class = "data.frame")
期望的输出:
ID Time Date
ID_001 08:01:00 2021-01-20
ID_001 10:01:00 2021-01-20
ID_001 12:01:00 2021-01-20
ID_001 14:01:00 2021-01-20
ID_001 16:01:00 2021-01-20
ID_001 18:01:00 2021-01-20
ID_001 20:01:00 2021-01-20
ID_001 22:01:00 2021-01-20
ID_001 00:01:00 2021-01-21
ID_001 02:01:00 2021-01-21
ID_001 04:01:00 2021-01-21
ID_001 06:01:00 2021-01-21
ID_001 08:01:00 2021-01-21
感谢您的帮助!
【问题讨论】:
-
请使用
dput(sample_data)的输出将数据发布到问题中,这样更容易复制和测试解决方案。谢谢。数据中包含什么来确定日期?您是否知道 ID-001 的第一次是在 20/01/2021 并且所有后续时间都是从这一点开始连续的? -
谢谢彼得。对,就是这样!从那时起,一切都是连续的。