У меня есть набор данных, я хочу установить подмножество рабочих дней и выходных в нерабочие часы. (это смоделированные данные)
data11 <- structure(list(dow = structure(c(6L, 4L, 2L, 7L, 5L, 6L), .Label = c("1", "2", "3", "4", "5", "6", "1"), class = "factor"),
time = c(0L, 1655L, 53L, 447L, 2000L, 1224L), sun1 = c(0, 0, 0, 0, 0, 0), sun2 = c(0, 0, 0, 0, 0, 0), sun = c(0, 0, 0, 0, 0, 0)), row.names = c(NA, 6L), class = "data.frame")
Я использовал это, чтобы сделать утренний (1) и ночной (2) час пик и другие (0). Но это также включает выходные, которые не имеют смысла.
data12=data11%>%mutate(crstime1=ifelse(630<time & time<830,1,0))%>%
mutate(crstime2=ifelse(1650<time & time<1830,2,0))
data12$crstime3=(data12$crstime1+data12$crstime2)
table(data12$crstime3)
0 1 2
86 7 7
Я хочу использовать разное время для выходных (день недели (dow) = 6 и 7). Я могу сделать это с помощью кода примерно так, но это будет пытка.
> data11=data11%>%mutate(sun1=ifelse(dow=="7" & 1100<time & time<1259,1,0))%>%
+ mutate(sun2=ifelse(dow=="7"& 1800<time & time<2059,2,0))
> data11$sun=(data11$sun1+data11$sun2)
> table(data11$sun)
0 1 2
96 2 2
> dplyr::filter(data11,dow=="7")
dow time sun1 sun2 sun
1 7 447 0 0 0
2 7 1751 0 0 0
3 7 330 0 0 0
4 7 0 0 0 0
5 7 216 0 0 0
6 7 1256 1 0 1
7 7 0 0 0 0
8 7 2032 0 2 2
9 7 1213 1 0 1
10 7 2030 0 2 2
11 7 323 0 0 0
12 7 300 0 0 0
13 7 843 0 0 0
14 7 53 0 0 0
Мой последний вопрос: я не могу преобразовать время в объект времени. оно целое, отлично работает, но мне нравится учиться. Я попробовал смазать, но не получилось.
> data11$dow
[1] 6 4 2 7 5 3 1 5 1 3 7 4 1 6 3 3 5 3 7 3 3 6 2 1 2 3 6 2 6 7 6 7 6 7 6 7 4 2 1 7 6 1 2 5 1 1 5 7 6 3 4 1 6 7 5 6 6 6 6 4 6 3 6 3
[65] 3 5 2 1 2 3 5 4 1 4 1 7 5 7 1 2 6 2 4 5 1 5 2 2 2 1 4 6 7 4 5 1 4 5 6 7
Levels: 1 2 3 4 5 6 7
> data11$time
[1] 2203 1632 2115 447 2000 1424 30 1324 723 2105 1751 743 1854 1000 1327 1105 135 1815 330 1845 1546 1752 936 1643 1410
[26] 1448 1630 942 2145 0 1500 216 1456 1256 1236 0 2037 1640 0 2032 1715 801 1219 2140 25 318 2234 1213 2230 2024
[51] 2327 2048 315 2030 1830 2148 317 1338 2233 2348 220 1746 1334 2006 829 1345 2004 1907 2004 1200 1010 2030 954 809 1502
[76] 323 1904 300 1310 1837 131 1520 820 1313 1529 1859 1600 1105 1821 1229 2052 1852 843 759 1609 1435 1722 1934 1225 53