我在 R 中使用以下库:
library(tidyverse)
library(timetk)
library(readxl)
library(writexl)
我有这样的数据:
structure(list(hour = c("0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300", "0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300", "0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300", "0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300", "0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300", "0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300", "0000", "0100", "0200", "0300", "0400",
"0500", "0600", "0700", "0800", "0900", "1000", "1100", "1200",
"1300", "1400", "1500", "1600", "1700", "1800", "1900", "2000",
"2100", "2200", "2300"), Monday = c("6", "2", "4", "1", "3",
"1", "2", "4", "10", "10", "22", "16", "9", "10", "12", "8",
"8", "10", "14", "5", "5", "7", "12", "4", "5", "6", "3", "1",
"2", "2", "1", "5", "11", "7", "13", "9", "8", "14", "8", "13",
"11", "8", "11", "13", "7", "15", "8", "2", "2", "2", "1", "2",
"2", "1", "2", "5", "8", "19", "16", "10", "12", "9", "16", "10",
"13", "6", "10", "17", "12", "4", "6", "10", "2", "1", "4", "5",
"3", "2", "6", "5", "4", "9", "10", "12", "15", "11", "2", "14",
"15", "16", "15", "7", "19", "7", "7", "5", "1", "3", "2", "1",
"2", "4", "4", "5", "10", "11", "13", "8", "15", "19", "17",
"11", "13", "10", "6", "8", "7", "16", "8", "7", "3", "3", "3",
"3", "4", "4", "3", "6", "5", "8", "19", "13", "9", "8", "10",
"15", "10", "11", "9", "14", "12", "12", "4", "7", "6", "2",
"4", NA, "1", "2", "1", "7", "9", "7", "8", "11", "14", "13",
"16", "8", "19", "12", "10", "17", "13", "7", "3", "7"), Tuesday = c("7",
"5", "4", "1", "1", "5", "3", "3", "13", "9", "8", "11", "5",
"13", "7", "7", "6", "9", "9", "8", "9", "9", "7", "5", "1",
"2", NA, "3", "1", "2", "4", "8", "15", "7", "8", "9", "11",
"5", "6", "7", "13", "12", "12", "9", "8", "7", "13", "4", "1",
"4", "1", "3", "1", "1", "3", "4", "8", "6", "16", "9", "17",
"9", "6", "10", "13", "6", "13", "8", "7", "5", "5", "4", "4",
"2", "3", "0", "1", "2", "4", "7", "14", "13", "8", "9", "10",
"9", "14", "8", "6", "13", "17", "13", "13", "7", "6", "2", "3",
"2", "1", "1", "3", "1", "5", "9", "9", "12", "8", "14", "15",
"8", "9", "17", "6", "15", "4", "12", "17", "8", "7", "7", "4",
"1", "4", "2", "0", "4", "3", "2", "8", "12", "9", "7", "9",
"11", "9", "7", "10", "11", "10", "12", "2", "8", "8", "6", "1",
"2", "3", "5", "2", "3", "7", "8", "6", "11", "10", "12", "15",
"13", "10", "7", "12", "17", "8", "10", "9", "10", "5", "3"),
Wednesday = c("4", "5", "4", "3", "1", "4", "6", "6", "13",
"8", "13", "13", "13", "9", "5", "16", "9", "8", "18", "6",
"11", "4", "4", "10", "3", NA, "1", "2", "3", "3", "1", "2",
"4", "13", "8", "7", "12", "13", "8", "9", "10", "12", "12",
"6", "15", "11", "7", "6", "6", "2", "2", "4", "4", "2",
"4", "8", "7", "8", "14", "7", "8", "11", "10", "12", "11",
"10", "11", "11", "17", "5", "9", "4", "3", "1", "1", "3",
"2", "2", "0", "4", "12", "10", "11", "7", "11", "12", "12",
"7", "14", "12", "6", "12", "12", "8", "11", "5", "3", "2",
"0", "2", "2", "2", "4", "5", "5", "10", "9", "13", "14",
"14", "7", "9", "6", "5", "11", "13", "8", "11", "9", "8",
"8", "3", "4", "1", "2", "1", "3", "4", "4", "16", "14",
"13", "5", "9", "14", "15", "12", "9", "8", "11", "9", "6",
"9", "3", "4", "2", "3", "2", "2", "1", "3", "7", "7", "7",
"5", "16", "14", "8", "7", "9", "11", "15", "17", "16", "9",
"10", "6", "7"), Thursday = c("5", "3", "4", "1", "2", "1",
"1", "4", "5", "8", "13", "14", "10", "9", "9", "16", "10",
"6", "8", "10", "10", "11", "6", "12", "4", "3", "4", "6",
"2", "3", "2", "5", "7", "9", "13", "15", "14", "11", "9",
"6", "12", "11", "8", "10", "6", "8", "5", "3", "4", "5",
"0", "3", "3", "4", "1", "1", "7", "3", "16", "9", "11",
"16", "10", "15", "13", "11", "9", "12", "12", "7", "6",
"9", "4", "5", "2", "3", "1", NA, "2", "6", "4", "6", "9",
"7", "10", "9", "7", "7", "10", "11", "16", "7", "22", "12",
"6", "5", "3", "4", "3", "1", "1", "3", "3", "6", "7", "7",
"8", "10", "12", "9", "8", "10", "5", "12", "13", "13", "10",
"7", "5", "5", "8", "3", "2", "2", "2", "0", "6", "4", "3",
"11", "9", "11", "12", "13", "10", "9", "8", "7", "6", "9",
"6", "9", "8", "10", "3", "4", "6", "3", "3", "2", "4", "7",
"7", "7", "6", "11", "11", "11", "9", "5", "10", "7", "14",
"16", "7", "5", "6", "6"), Friday = c("6", "4", "1", "1",
"2", "0", "2", "4", "10", "4", "8", "9", "15", "9", "9",
"9", "9", "8", "8", "7", "10", "13", "5", "2", "3", "3",
"5", "3", "3", "8", "3", "4", "7", "9", "14", "9", "15",
"8", "7", "11", "14", "10", "4", "11", "8", "8", "7", "8",
"4", "2", "8", "2", "1", "1", "4", "1", "8", "7", "11", "16",
"11", "12", "9", "10", "4", "5", "4", "13", "8", "9", "5",
"7", "4", "3", "5", "1", "2", "3", "2", "6", "4", "7", "12",
"11", "7", "10", "8", "9", "12", "7", "5", "12", "7", "9",
"8", "9", "2", "2", "1", "3", "2", "2", "4", "3", "6", "7",
"14", "8", "13", "13", "10", "12", "11", "13", "8", "8",
"11", "8", "10", "6", "4", "3", "4", "3", "2", "3", "1",
"1", "3", "4", "10", "12", "9", "18", "5", "12", "9", "9",
"13", "10", "14", "4", "11", "6", "2", "5", "2", "3", "2",
"3", "4", "7", "8", "11", "7", "15", "12", "10", "8", "14",
"6", "10", "11", "9", "16", "13", "9", "6"), Saturday = c("4",
"6", "4", "4", "1", "4", "5", "4", "4", "5", "6", "7", "6",
"8", "7", "4", "11", "10", "10", "10", "9", "7", "6", "5",
"8", "5", "6", "2", "1", "1", "5", "5", "5", "10", "11",
"12", "8", "9", "8", "10", "9", "3", "9", "12", "11", "7",
"17", "5", "4", "4", "0", "4", "4", "3", "2", "4", "5", "13",
"7", "5", "9", "8", "10", "11", "9", "8", "12", "18", "8",
"11", "10", "4", "5", "8", "5", "3", "4", "5", "2", "6",
"5", "6", "9", "11", "7", "11", "8", "11", "2", "12", "9",
"10", "13", "9", "7", "8", "7", "3", "3", "2", "3", "3",
"5", "8", "5", "5", "13", "15", "8", "13", "10", "8", "10",
"6", "13", "6", "8", "9", "8", "6", "5", "6", "6", "4", "3",
"2", "4", "5", "4", "8", "10", "6", "13", "15", "11", "10",
"10", "4", "8", "7", "10", "9", "8", "8", "6", "3", "6",
"5", "3", "3", "2", "6", "9", "5", "11", "10", "8", "8",
"16", "9", "11", "6", "7", "11", "17", "10", "9", "8"), Sunday = c("6",
"6", "4", "2", "1", "1", "3", "4", "8", "7", "9", "10", "11",
"14", "7", "13", "8", "11", "9", "10", "12", "6", "8", "3",
"5", "3", "1", "2", "4", "3", "2", "8", "11", "9", "11",
"9", "7", "7", "8", "6", "5", "6", "10", "24", "15", "4",
"5", "2", "8", "2", "2", "5", "0", "2", "4", "6", "4", "8",
"6", "7", "9", "6", "8", "17", "10", "10", "8", "10", "13",
"6", "5", "4", "5", "6", "2", "4", "1", "2", "1", "3", "8",
"8", "12", "13", "10", "8", "8", "6", "7", "8", "9", "11",
"8", "8", "5", "5", "3", "4", "3", "3", "1", "1", "5", "3",
"6", "10", "3", "8", "4", "9", "7", "6", "7", "5", "10",
"8", "11", "10", "8", "13", "4", "6", "4", "2", "4", "1",
"6", "3", "5", "6", "7", "14", "8", "7", "6", "11", "9",
"8", "12", "6", "11", "10", "7", "5", "3", "4", "3", "4",
"2", "6", "7", "7", "6", "9", "15", "19", "5", "9", "10",
"9", "12", "10", "10", "12", "10", "7", "12", "7")), row.names = c(NA,
-168L), class = c("tbl_df", "tbl", "data.frame"))
我知道开始日期和结束日期,所以我设置了它们:
start_date <- "2018-04-09 00:00:00"
end_date <- "2021-09-26 23:00:00"
date_seq <- tk_make_timeseries(
start_date = start_date,
end_date = end_date,
by = "hour"
) %>%
as_tibble() %>%
mutate(rn = rep(1:24, nrow(date_seq)/24))
我想要做的是让我的数据摆脱奇怪的宽格式并使其变长。周一 00:00:00 值,周一 01:00:00 值等。
可能的?