【发布时间】:2022-01-21 06:05:21
【问题描述】:
我有一个数据集,并且有一些日期和时间属性。这是示例,然后我将解释我要做什么;
| date1 | hour1 | date2 | hour2 | date3 | hour3 |
|---|---|---|---|---|---|
| 2014-03-16 00:00:00 | 16:20:00 | 2014-03-16 00:00:00 | 20:20:03 | 2014-03-16 00:00:00 | 22:12:34 |
| 2014-04-22 00:00:00 | 10:20:00 | 2014-04-22 00:00:00 | 15:20:03 | 2014-04-22 00:00:00 | 20:12:34 |
| 2015-03-12 00:00:00 | 16:20:00 | 2015-03-12 00:00:00 | 20:20:03 | 2015-03-12 00:00:00 | 22:12:34 |
我们知道 event1 在 event2 之前发生(event1 -> event2 -> event3)
但是如您所见,在日期属性中,时间部分不正确,但我们每个都有小时属性。我想做的事;我想通过使用小时属性来更正它们,然后找到这两个日期之间的差异并创建以小时为时间差的新属性。
上表示例;
| event2_time |
|---|
| 4 |
| 5 |
| 4 |
我试图合并小时到日期并创建一个这样的新属性,但它不起作用。(我的目标实际上是更正日期值并摆脱小时属性)
trainTable <- trainTable %>%
mutate("newParam" = as.POSIXct(paste(alert_date, alert_hour), format="%Y-%m-%d %H:%M:%S")
我需要一些帮助,在此先感谢。
数据
structure(list(alert_date = structure(c(1394928000, 1395014400,
1395014400, 1395187200, 1395273600, 1395014400), tzone = "UTC", class = c("POSIXct",
"POSIXt")), alert_hour = c("16:15:00", "20:53:00", "12:55:00",
"14:22:00", "12:07:00", "17:48:00"), firstInterv_date = structure(c(1394928000,
1395014400, 1395014400, 1395187200, 1395273600, 1395014400), tzone = "UTC", class = c("POSIXct",
"POSIXt")), firstInterv_hour = c("16:35:00", "21:05:00", "13:10:00",
"14:42:00", "12:07:00", "18:08:00"), extinction_date = structure(c(1394928000,
1395014400, 1395014400, 1395187200, 1395273600, 1395014400), tzone = "UTC", class = c("POSIXct",
"POSIXt")), extinction_hour = c("17:47:00", "22:46:00", "15:30:00",
"15:25:00", "13:14:00", "21:10:00")), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
【问题讨论】:
-
我还尝试创建一个函数,它将日期和小时作为参数并更改日期的小时部分并返回日期。但我无法创建正确的语法