R 将时间数据组织为固定的时间间隔
我正在处理一个大型数据集,其中包含完整的日期和时间,格式为“2018-04-06 14:39:00”。我试图在数据框中创建一个新列,该列将每个时间戳的各个时间间隔划分为一天的四分之一,例如:R 将时间数据组织为固定的时间间隔,r,R,我正在处理一个大型数据集,其中包含完整的日期和时间,格式为“2018-04-06 14:39:00”。我试图在数据框中创建一个新列,该列将每个时间戳的各个时间间隔划分为一天的四分之一,例如: "00:00 - 05:59" "06:00 - 11:59" "12:00 - 17:59" "18:00 - 23:59" 例如,5:00的时间戳的时间间隔为00:00-05:59,位于数据帧中该时间戳的同一行的另一列中 > dput(file1[, c("V8", "V9")]) struc
"00:00 - 05:59"
"06:00 - 11:59"
"12:00 - 17:59"
"18:00 - 23:59"
例如,5:00的时间戳的时间间隔为00:00-05:59,位于数据帧中该时间戳的同一行的另一列中
> dput(file1[, c("V8", "V9")])
structure(list(V8 = structure(1:19, .Label = c("4/6/2018 14:39",
"4/6/2018 15:04", "4/6/2018 15:09", "4/6/2018 15:28", "4/6/2018 15:56",
"4/6/2018 16:02", "4/6/2018 16:07", "4/6/2018 16:10", "4/6/2018 16:11",
"4/6/2018 16:27", "4/6/2018 16:41", "4/6/2018 16:43", "4/6/2018 16:57",
"4/6/2018 17:13", "4/6/2018 17:17", "4/6/2018 17:30", "4/6/2018 17:38",
"4/6/2018 17:47", "4/6/2018 17:52"), class = "factor"), V9 = structure(c(1L,
3L, 2L, 4L, 8L, 5L, 6L, 9L, 7L, 12L, 19L, 16L, 11L, 13L, 10L,
14L, 17L, 18L, 15L), .Label = c("4/6/2018 15:00", "4/6/2018 15:26",
"4/6/2018 15:32", "4/6/2018 16:01", "4/6/2018 16:10", "4/6/2018 16:12",
"4/6/2018 16:18", "4/6/2018 16:35", "4/6/2018 16:46", "4/6/2018 17:24",
"4/6/2018 17:37", "4/6/2018 17:38", "4/6/2018 17:46", "4/6/2018 18:24",
"4/6/2018 18:46", "4/6/2018 19:21", "4/6/2018 20:14", "4/6/2018 20:35",
"4/6/2018 21:44"), class = "factor")), .Names = c("V8", "V9"), class =
"data.frame", row.names = c(NA, -19L))
V8是开始时间,V9是结束时间
为此,只有开始时间才重要。
解决这个问题的最好办法是什么
我试着用if。。。其他语句,但无法真正开始工作。尝试以下方法。我假设您的日期是日/月/年,并调用了数据帧df1 您的示例开始时间不是很有趣,它们都属于同一个季度,因此我使用结束时间V9来说明 您可能需要调整要剪切的参数,以确保四分之一边界如您所愿 示例中所有行的日期都相同,但如果不相同,则需要按日期分组,如图所示
library(dplyr)
library(lubridate)
df1 %>%
transmute(date_time = dmy_hm(V9),
Date = as_date(date_time)) %>%
group_by(Date) %>%
mutate(quarter = cut(hour(date_time),
breaks = seq(0, 24, 6),
include.lowest = TRUE,
labels = c("00:00 - 05:59",
"06:00 - 11:59",
"12:00 - 17:59",
"18:00 - 23:59"))) %>%
ungroup()
date_time Date quarter
<dttm> <date> <fct>
1 2018-06-04 15:00:00 2018-06-04 12:00 - 17:59
2 2018-06-04 15:32:00 2018-06-04 12:00 - 17:59
3 2018-06-04 15:26:00 2018-06-04 12:00 - 17:59
4 2018-06-04 16:01:00 2018-06-04 12:00 - 17:59
5 2018-06-04 16:35:00 2018-06-04 12:00 - 17:59
6 2018-06-04 16:10:00 2018-06-04 12:00 - 17:59
7 2018-06-04 16:12:00 2018-06-04 12:00 - 17:59
8 2018-06-04 16:46:00 2018-06-04 12:00 - 17:59
9 2018-06-04 16:18:00 2018-06-04 12:00 - 17:59
10 2018-06-04 17:38:00 2018-06-04 12:00 - 17:59
11 2018-06-04 21:44:00 2018-06-04 18:00 - 23:59
12 2018-06-04 19:21:00 2018-06-04 18:00 - 23:59
13 2018-06-04 17:37:00 2018-06-04 12:00 - 17:59
14 2018-06-04 17:46:00 2018-06-04 12:00 - 17:59
15 2018-06-04 17:24:00 2018-06-04 12:00 - 17:59
16 2018-06-04 18:24:00 2018-06-04 12:00 - 17:59
17 2018-06-04 20:14:00 2018-06-04 18:00 - 23:59
18 2018-06-04 20:35:00 2018-06-04 18:00 - 23:59
19 2018-06-04 18:46:00 2018-06-04 12:00 - 17:59
非常类似的问题:在剪切中添加一个labels参数,您就会在那里-