如何绘制 4 列与时间的关系
How to plot 4 columns vs time
所以我有这样的数据。
每秒一个数据点。
我需要能够绘制最后 4 列(站立、踏步、骑自行车、New_sitting)与时间的每一天的散点图。基本上如果数据集跨越 5 天,我需要 5 个地块。该程序需要能够知道这一点。
我还将改变最后 4 列数据,以便它们可以是 1、2、3、4 而不是所有 1,因此散点图将显示随时间变化的“上下”函数。
> head(pre,100)
Date Time Axis1 Axis2 Axis3 VM Standing Stepping Cycling New_Sitting
1 2022-03-14 2022-03-14 09:51:00 89 41 39 105.47 0 0 1 0
2 2022-03-14 2022-03-14 09:51:01 88 135 117 199.14 0 1 0 0
3 2022-03-14 2022-03-14 09:51:02 0 61 8 61.52 0 0 1 0
4 2022-03-14 2022-03-14 09:51:03 0 25 0 25.00 0 0 0 1
5 2022-03-14 2022-03-14 09:51:04 0 0 0 0.00 0 0 0 1
6 2022-03-14 2022-03-14 09:51:05 0 0 0 0.00 0 0 0 1
7 2022-03-14 2022-03-14 09:51:06 0 24 35 42.44 0 1 0 0
8 2022-03-14 2022-03-14 09:51:07 0 28 0 28.00 1 0 0 0
9 2022-03-14 2022-03-14 09:51:08 4 96 20 98.14 1 0 0 0
10 2022-03-14 2022-03-14 09:51:09 0 11 0 11.00 1 0 0 0
11 2022-03-14 2022-03-14 09:51:10 3 91 22 93.67 1 0 0 0
12 2022-03-14 2022-03-14 09:51:11 9 44 2 44.96 1 0 0 0
13 2022-03-14 2022-03-14 09:51:12 5 8 16 18.57 1 0 0 0
14 2022-03-14 2022-03-14 09:51:13 0 8 21 22.47 1 0 0 0
15 2022-03-14 2022-03-14 09:51:14 1 29 48 56.09 0 1 0 0
16 2022-03-14 2022-03-14 09:51:15 0 1 3 3.16 1 0 0 0
17 2022-03-14 2022-03-14 09:51:16 0 17 35 38.91 0 1 0 0
18 2022-03-14 2022-03-14 09:51:17 0 0 0 0.00 1 0 0 0
19 2022-03-14 2022-03-14 09:51:18 0 0 5 5.00 1 0 0 0
20 2022-03-14 2022-03-14 09:51:19 0 0 29 29.00 0 1 0 0
21 2022-03-14 2022-03-14 09:51:20 0 15 32 35.34 0 1 0 0
22 2022-03-14 2022-03-14 09:51:21 0 0 0 0.00 1 0 0 0
23 2022-03-14 2022-03-14 09:51:22 0 0 0 0.00 1 0 0 0
24 2022-03-14 2022-03-14 09:51:23 0 0 0 0.00 1 0 0 0
25 2022-03-14 2022-03-14 09:51:24 0 0 0 0.00 1 0 0 0
26 2022-03-14 2022-03-14 09:51:25 0 28 4 28.28 1 0 0 0
27 2022-03-14 2022-03-14 09:51:26 13 47 26 55.26 0 1 0 0
28 2022-03-14 2022-03-14 09:51:27 11 28 68 74.36 0 1 0 0
29 2022-03-14 2022-03-14 09:51:28 3 48 5 48.35 1 0 0 0
30 2022-03-14 2022-03-14 09:51:29 0 0 0 0.00 1 0 0 0
31 2022-03-14 2022-03-14 09:51:30 0 0 0 0.00 1 0 0 0
32 2022-03-14 2022-03-14 09:51:31 0 0 0 0.00 1 0 0 0
33 2022-03-14 2022-03-14 09:51:32 0 0 0 0.00 1 0 0 0
34 2022-03-14 2022-03-14 09:51:33 0 0 0 0.00 1 0 0 0
35 2022-03-14 2022-03-14 09:51:34 7 44 20 48.84 1 0 0 0
36 2022-03-14 2022-03-14 09:51:35 10 46 39 61.13 0 1 0 0
37 2022-03-14 2022-03-14 09:51:36 1 13 63 64.34 0 1 0 0
38 2022-03-14 2022-03-14 09:51:37 0 0 11 11.00 1 0 0 0
39 2022-03-14 2022-03-14 09:51:38 0 0 0 0.00 1 0 0 0
40 2022-03-14 2022-03-14 09:51:39 0 0 0 0.00 1 0 0 0
41 2022-03-14 2022-03-14 09:51:40 0 0 0 0.00 1 0 0 0
42 2022-03-14 2022-03-14 09:51:41 0 22 24 32.56 1 0 0 0
43 2022-03-14 2022-03-14 09:51:42 0 19 21 28.32 1 0 0 0
44 2022-03-14 2022-03-14 09:51:43 0 6 17 18.03 1 0 0 0
45 2022-03-14 2022-03-14 09:51:44 0 6 0 6.00 1 0 0 0
46 2022-03-14 2022-03-14 09:51:45 0 14 46 48.08 0 1 0 0
47 2022-03-14 2022-03-14 09:51:46 0 0 0 0.00 1 0 0 0
48 2022-03-14 2022-03-14 09:51:47 0 0 0 0.00 1 0 0 0
49 2022-03-14 2022-03-14 09:51:48 0 0 0 0.00 1 0 0 0
50 2022-03-14 2022-03-14 09:51:49 0 0 0 0.00 1 0 0 0
51 2022-03-14 2022-03-14 09:51:50 0 0 0 0.00 1 0 0 0
52 2022-03-14 2022-03-14 09:51:51 0 0 0 0.00 1 0 0 0
53 2022-03-14 2022-03-14 09:51:52 0 0 0 0.00 1 0 0 0
54 2022-03-14 2022-03-14 09:51:53 0 0 0 0.00 1 0 0 0
55 2022-03-14 2022-03-14 09:51:54 0 0 0 0.00 1 0 0 0
56 2022-03-14 2022-03-14 09:51:55 0 0 0 0.00 1 0 0 0
57 2022-03-14 2022-03-14 09:51:56 0 0 0 0.00 1 0 0 0
58 2022-03-14 2022-03-14 09:51:57 0 0 0 0.00 1 0 0 0
59 2022-03-14 2022-03-14 09:51:58 0 0 0 0.00 1 0 0 0
60 2022-03-14 2022-03-14 09:51:59 0 0 0 0.00 1 0 0 0
61 2022-03-14 2022-03-14 09:52:00 0 0 0 0.00 1 0 0 0
62 2022-03-14 2022-03-14 09:52:01 0 0 0 0.00 1 0 0 0
63 2022-03-14 2022-03-14 09:52:02 0 0 0 0.00 1 0 0 0
64 2022-03-14 2022-03-14 09:52:03 5 0 6 7.81 1 0 0 0
65 2022-03-14 2022-03-14 09:52:04 5 0 64 64.20 0 1 0 0
66 2022-03-14 2022-03-14 09:52:05 10 34 62 71.41 0 1 0 0
67 2022-03-14 2022-03-14 09:52:06 1 0 0 1.00 1 0 0 0
68 2022-03-14 2022-03-14 09:52:07 14 41 69 81.47 0 1 0 0
69 2022-03-14 2022-03-14 09:52:08 0 52 40 65.60 0 1 0 0
70 2022-03-14 2022-03-14 09:52:09 0 25 46 52.35 0 1 0 0
71 2022-03-14 2022-03-14 09:52:10 9 24 41 48.35 0 1 0 0
72 2022-03-14 2022-03-14 09:52:11 0 7 37 37.66 0 1 0 0
73 2022-03-14 2022-03-14 09:52:12 0 0 0 0.00 1 0 0 0
74 2022-03-14 2022-03-14 09:52:13 18 15 57 61.63 0 1 0 0
75 2022-03-14 2022-03-14 09:52:14 13 18 86 88.82 0 1 0 0
76 2022-03-14 2022-03-14 09:52:15 0 34 47 58.01 0 1 0 0
77 2022-03-14 2022-03-14 09:52:16 0 6 1 6.08 1 0 0 0
78 2022-03-14 2022-03-14 09:52:17 0 27 61 66.71 0 1 0 0
79 2022-03-14 2022-03-14 09:52:18 0 21 5 21.59 1 0 0 0
80 2022-03-14 2022-03-14 09:52:19 22 53 62 84.48 0 1 0 0
81 2022-03-14 2022-03-14 09:52:20 6 56 12 57.58 1 0 0 0
82 2022-03-14 2022-03-14 09:52:21 13 10 8 18.25 1 0 0 0
83 2022-03-14 2022-03-14 09:52:22 65 70 120 153.38 0 1 0 0
84 2022-03-14 2022-03-14 09:52:23 29 24 47 60.22 0 1 0 0
85 2022-03-14 2022-03-14 09:52:24 8 7 43 44.29 0 1 0 0
86 2022-03-14 2022-03-14 09:52:25 28 10 90 94.78 0 1 0 0
87 2022-03-14 2022-03-14 09:52:26 31 50 65 87.67 0 1 0 0
88 2022-03-14 2022-03-14 09:52:27 12 81 53 97.54 0 1 0 0
89 2022-03-14 2022-03-14 09:52:28 16 59 33 69.47 0 1 0 0
90 2022-03-14 2022-03-14 09:52:29 148 12 99 178.46 0 0 1 0
91 2022-03-14 2022-03-14 09:52:30 75 2 60 96.07 0 0 1 0
92 2022-03-14 2022-03-14 09:52:31 79 0 23 82.28 0 0 1 0
93 2022-03-14 2022-03-14 09:52:32 16 0 0 16.00 0 0 0 1
94 2022-03-14 2022-03-14 09:52:33 7 0 0 7.00 0 0 0 1
95 2022-03-14 2022-03-14 09:52:34 6 0 0 6.00 0 0 0 1
96 2022-03-14 2022-03-14 09:52:35 0 0 0 0.00 0 0 0 1
97 2022-03-14 2022-03-14 09:52:36 0 0 0 0.00 0 0 0 1
98 2022-03-14 2022-03-14 09:52:37 0 0 0 0.00 0 0 0 1
99 2022-03-14 2022-03-14 09:52:38 0 0 0 0.00 0 0 0 1
100 2022-03-14 2022-03-14 09:52:39 0 0 0 0.00 0 0 0 1
PS
当前使用此代码按日期对所有列求和,可能有用吗?
Summary_PRE <- workday_PRE %>% group_by(Date) %>% mutate_if(is.character,as.numeric) %>% summarise(across(Axis1:Counter,sum))
Summary_PRE <- subset (Summary_PRE, select = -c(Axis1,Axis2,Axis3,VM))
编辑
> dput(head(pre,100))
structure(list(Date = structure(c(19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065), class = "Date"), Time = structure(c(1647265860,
1647265861, 1647265862, 1647265863, 1647265864, 1647265865, 1647265866,
1647265867, 1647265868, 1647265869, 1647265870, 1647265871, 1647265872,
1647265873, 1647265874, 1647265875, 1647265876, 1647265877, 1647265878,
1647265879, 1647265880, 1647265881, 1647265882, 1647265883, 1647265884,
1647265885, 1647265886, 1647265887, 1647265888, 1647265889, 1647265890,
1647265891, 1647265892, 1647265893, 1647265894, 1647265895, 1647265896,
1647265897, 1647265898, 1647265899, 1647265900, 1647265901, 1647265902,
1647265903, 1647265904, 1647265905, 1647265906, 1647265907, 1647265908,
1647265909, 1647265910, 1647265911, 1647265912, 1647265913, 1647265914,
1647265915, 1647265916, 1647265917, 1647265918, 1647265919, 1647265920,
1647265921, 1647265922, 1647265923, 1647265924, 1647265925, 1647265926,
1647265927, 1647265928, 1647265929, 1647265930, 1647265931, 1647265932,
1647265933, 1647265934, 1647265935, 1647265936, 1647265937, 1647265938,
1647265939, 1647265940, 1647265941, 1647265942, 1647265943, 1647265944,
1647265945, 1647265946, 1647265947, 1647265948, 1647265949, 1647265950,
1647265951, 1647265952, 1647265953, 1647265954, 1647265955, 1647265956,
1647265957, 1647265958, 1647265959), class = c("POSIXct", "POSIXt"
), tzone = ""), Axis1 = c(89, 88, 0, 0, 0, 0, 0, 0, 4, 0, 3,
9, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 11, 3, 0, 0,
0, 0, 0, 7, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 10, 1, 14, 0, 0, 9,
0, 0, 18, 13, 0, 0, 0, 0, 22, 6, 13, 65, 29, 8, 28, 31, 12, 16,
148, 75, 79, 16, 7, 6, 0, 0, 0, 0, 0), Axis2 = c(41, 135, 61,
25, 0, 0, 24, 28, 96, 11, 91, 44, 8, 8, 29, 1, 17, 0, 0, 0, 15,
0, 0, 0, 0, 28, 47, 28, 48, 0, 0, 0, 0, 0, 44, 46, 13, 0, 0,
0, 0, 22, 19, 6, 6, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 34, 0, 41, 52, 25, 24, 7, 0, 15, 18, 34, 6,
27, 21, 53, 56, 10, 70, 24, 7, 10, 50, 81, 59, 12, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0), Axis3 = c(39, 117, 8, 0, 0, 0, 35, 0, 20,
0, 22, 2, 16, 21, 48, 3, 35, 0, 5, 29, 32, 0, 0, 0, 0, 4, 26,
68, 5, 0, 0, 0, 0, 0, 20, 39, 63, 11, 0, 0, 0, 24, 21, 17, 0,
46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 64,
62, 0, 69, 40, 46, 41, 37, 0, 57, 86, 47, 1, 61, 5, 62, 12, 8,
120, 47, 43, 90, 65, 53, 33, 99, 60, 23, 0, 0, 0, 0, 0, 0, 0,
0), VM = c(105.47, 199.14, 61.52, 25, 0, 0, 42.44, 28, 98.14,
11, 93.67, 44.96, 18.57, 22.47, 56.09, 3.16, 38.91, 0, 5, 29,
35.34, 0, 0, 0, 0, 28.28, 55.26, 74.36, 48.35, 0, 0, 0, 0, 0,
48.84, 61.13, 64.34, 11, 0, 0, 0, 32.56, 28.32, 18.03, 6, 48.08,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.81, 64.2,
71.41, 1, 81.47, 65.6, 52.35, 48.35, 37.66, 0, 61.63, 88.82,
58.01, 6.08, 66.71, 21.59, 84.48, 57.58, 18.25, 153.38, 60.22,
44.29, 94.78, 87.67, 97.54, 69.47, 178.46, 96.07, 82.28, 16,
7, 6, 0, 0, 0, 0, 0), Standing = c(0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1,
1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0), Stepping = c(0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0), Cycling = c(1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0), New_Sitting = c(0, 0, 0, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1)), row.names = c(NA, 100L), class = "data.frame")
我猜测“它们可以是 1、2、3、4 而不是全 1”是指您想要将单个检测转换为某种度量,以捕获随时间变化的频率。我任意总结了滚动 1 分钟时间范围内的检测结果(如果你想要更短的时间 window,你可以使用 lubridate::seconds(10)
之类的东西)。然后我 pivot_longer 将这四列放入一对匹配的“名称”(来自 orig 列)和“值”(来自 orig 列),并绘制它们。请注意,我按日期分面,但给每个分面一个自由的 x 轴刻度,因此在 multi-day 数据中你应该看到一个与当天范围匹配的 x 轴。
pre %>%
# change columns 7-10 to sum over a 1 minute rolling period
mutate(across(7:10, ~slider::slide_index_dbl(., Time, sum,
.before = lubridate::minutes(1)))) %>%
pivot_longer(7:10) %>%
ggplot(aes(Time, value, color = name)) +
geom_line() +
facet_wrap(~Date, scales = "free_x")
所以我有这样的数据。 每秒一个数据点。
我需要能够绘制最后 4 列(站立、踏步、骑自行车、New_sitting)与时间的每一天的散点图。基本上如果数据集跨越 5 天,我需要 5 个地块。该程序需要能够知道这一点。 我还将改变最后 4 列数据,以便它们可以是 1、2、3、4 而不是所有 1,因此散点图将显示随时间变化的“上下”函数。
> head(pre,100)
Date Time Axis1 Axis2 Axis3 VM Standing Stepping Cycling New_Sitting
1 2022-03-14 2022-03-14 09:51:00 89 41 39 105.47 0 0 1 0
2 2022-03-14 2022-03-14 09:51:01 88 135 117 199.14 0 1 0 0
3 2022-03-14 2022-03-14 09:51:02 0 61 8 61.52 0 0 1 0
4 2022-03-14 2022-03-14 09:51:03 0 25 0 25.00 0 0 0 1
5 2022-03-14 2022-03-14 09:51:04 0 0 0 0.00 0 0 0 1
6 2022-03-14 2022-03-14 09:51:05 0 0 0 0.00 0 0 0 1
7 2022-03-14 2022-03-14 09:51:06 0 24 35 42.44 0 1 0 0
8 2022-03-14 2022-03-14 09:51:07 0 28 0 28.00 1 0 0 0
9 2022-03-14 2022-03-14 09:51:08 4 96 20 98.14 1 0 0 0
10 2022-03-14 2022-03-14 09:51:09 0 11 0 11.00 1 0 0 0
11 2022-03-14 2022-03-14 09:51:10 3 91 22 93.67 1 0 0 0
12 2022-03-14 2022-03-14 09:51:11 9 44 2 44.96 1 0 0 0
13 2022-03-14 2022-03-14 09:51:12 5 8 16 18.57 1 0 0 0
14 2022-03-14 2022-03-14 09:51:13 0 8 21 22.47 1 0 0 0
15 2022-03-14 2022-03-14 09:51:14 1 29 48 56.09 0 1 0 0
16 2022-03-14 2022-03-14 09:51:15 0 1 3 3.16 1 0 0 0
17 2022-03-14 2022-03-14 09:51:16 0 17 35 38.91 0 1 0 0
18 2022-03-14 2022-03-14 09:51:17 0 0 0 0.00 1 0 0 0
19 2022-03-14 2022-03-14 09:51:18 0 0 5 5.00 1 0 0 0
20 2022-03-14 2022-03-14 09:51:19 0 0 29 29.00 0 1 0 0
21 2022-03-14 2022-03-14 09:51:20 0 15 32 35.34 0 1 0 0
22 2022-03-14 2022-03-14 09:51:21 0 0 0 0.00 1 0 0 0
23 2022-03-14 2022-03-14 09:51:22 0 0 0 0.00 1 0 0 0
24 2022-03-14 2022-03-14 09:51:23 0 0 0 0.00 1 0 0 0
25 2022-03-14 2022-03-14 09:51:24 0 0 0 0.00 1 0 0 0
26 2022-03-14 2022-03-14 09:51:25 0 28 4 28.28 1 0 0 0
27 2022-03-14 2022-03-14 09:51:26 13 47 26 55.26 0 1 0 0
28 2022-03-14 2022-03-14 09:51:27 11 28 68 74.36 0 1 0 0
29 2022-03-14 2022-03-14 09:51:28 3 48 5 48.35 1 0 0 0
30 2022-03-14 2022-03-14 09:51:29 0 0 0 0.00 1 0 0 0
31 2022-03-14 2022-03-14 09:51:30 0 0 0 0.00 1 0 0 0
32 2022-03-14 2022-03-14 09:51:31 0 0 0 0.00 1 0 0 0
33 2022-03-14 2022-03-14 09:51:32 0 0 0 0.00 1 0 0 0
34 2022-03-14 2022-03-14 09:51:33 0 0 0 0.00 1 0 0 0
35 2022-03-14 2022-03-14 09:51:34 7 44 20 48.84 1 0 0 0
36 2022-03-14 2022-03-14 09:51:35 10 46 39 61.13 0 1 0 0
37 2022-03-14 2022-03-14 09:51:36 1 13 63 64.34 0 1 0 0
38 2022-03-14 2022-03-14 09:51:37 0 0 11 11.00 1 0 0 0
39 2022-03-14 2022-03-14 09:51:38 0 0 0 0.00 1 0 0 0
40 2022-03-14 2022-03-14 09:51:39 0 0 0 0.00 1 0 0 0
41 2022-03-14 2022-03-14 09:51:40 0 0 0 0.00 1 0 0 0
42 2022-03-14 2022-03-14 09:51:41 0 22 24 32.56 1 0 0 0
43 2022-03-14 2022-03-14 09:51:42 0 19 21 28.32 1 0 0 0
44 2022-03-14 2022-03-14 09:51:43 0 6 17 18.03 1 0 0 0
45 2022-03-14 2022-03-14 09:51:44 0 6 0 6.00 1 0 0 0
46 2022-03-14 2022-03-14 09:51:45 0 14 46 48.08 0 1 0 0
47 2022-03-14 2022-03-14 09:51:46 0 0 0 0.00 1 0 0 0
48 2022-03-14 2022-03-14 09:51:47 0 0 0 0.00 1 0 0 0
49 2022-03-14 2022-03-14 09:51:48 0 0 0 0.00 1 0 0 0
50 2022-03-14 2022-03-14 09:51:49 0 0 0 0.00 1 0 0 0
51 2022-03-14 2022-03-14 09:51:50 0 0 0 0.00 1 0 0 0
52 2022-03-14 2022-03-14 09:51:51 0 0 0 0.00 1 0 0 0
53 2022-03-14 2022-03-14 09:51:52 0 0 0 0.00 1 0 0 0
54 2022-03-14 2022-03-14 09:51:53 0 0 0 0.00 1 0 0 0
55 2022-03-14 2022-03-14 09:51:54 0 0 0 0.00 1 0 0 0
56 2022-03-14 2022-03-14 09:51:55 0 0 0 0.00 1 0 0 0
57 2022-03-14 2022-03-14 09:51:56 0 0 0 0.00 1 0 0 0
58 2022-03-14 2022-03-14 09:51:57 0 0 0 0.00 1 0 0 0
59 2022-03-14 2022-03-14 09:51:58 0 0 0 0.00 1 0 0 0
60 2022-03-14 2022-03-14 09:51:59 0 0 0 0.00 1 0 0 0
61 2022-03-14 2022-03-14 09:52:00 0 0 0 0.00 1 0 0 0
62 2022-03-14 2022-03-14 09:52:01 0 0 0 0.00 1 0 0 0
63 2022-03-14 2022-03-14 09:52:02 0 0 0 0.00 1 0 0 0
64 2022-03-14 2022-03-14 09:52:03 5 0 6 7.81 1 0 0 0
65 2022-03-14 2022-03-14 09:52:04 5 0 64 64.20 0 1 0 0
66 2022-03-14 2022-03-14 09:52:05 10 34 62 71.41 0 1 0 0
67 2022-03-14 2022-03-14 09:52:06 1 0 0 1.00 1 0 0 0
68 2022-03-14 2022-03-14 09:52:07 14 41 69 81.47 0 1 0 0
69 2022-03-14 2022-03-14 09:52:08 0 52 40 65.60 0 1 0 0
70 2022-03-14 2022-03-14 09:52:09 0 25 46 52.35 0 1 0 0
71 2022-03-14 2022-03-14 09:52:10 9 24 41 48.35 0 1 0 0
72 2022-03-14 2022-03-14 09:52:11 0 7 37 37.66 0 1 0 0
73 2022-03-14 2022-03-14 09:52:12 0 0 0 0.00 1 0 0 0
74 2022-03-14 2022-03-14 09:52:13 18 15 57 61.63 0 1 0 0
75 2022-03-14 2022-03-14 09:52:14 13 18 86 88.82 0 1 0 0
76 2022-03-14 2022-03-14 09:52:15 0 34 47 58.01 0 1 0 0
77 2022-03-14 2022-03-14 09:52:16 0 6 1 6.08 1 0 0 0
78 2022-03-14 2022-03-14 09:52:17 0 27 61 66.71 0 1 0 0
79 2022-03-14 2022-03-14 09:52:18 0 21 5 21.59 1 0 0 0
80 2022-03-14 2022-03-14 09:52:19 22 53 62 84.48 0 1 0 0
81 2022-03-14 2022-03-14 09:52:20 6 56 12 57.58 1 0 0 0
82 2022-03-14 2022-03-14 09:52:21 13 10 8 18.25 1 0 0 0
83 2022-03-14 2022-03-14 09:52:22 65 70 120 153.38 0 1 0 0
84 2022-03-14 2022-03-14 09:52:23 29 24 47 60.22 0 1 0 0
85 2022-03-14 2022-03-14 09:52:24 8 7 43 44.29 0 1 0 0
86 2022-03-14 2022-03-14 09:52:25 28 10 90 94.78 0 1 0 0
87 2022-03-14 2022-03-14 09:52:26 31 50 65 87.67 0 1 0 0
88 2022-03-14 2022-03-14 09:52:27 12 81 53 97.54 0 1 0 0
89 2022-03-14 2022-03-14 09:52:28 16 59 33 69.47 0 1 0 0
90 2022-03-14 2022-03-14 09:52:29 148 12 99 178.46 0 0 1 0
91 2022-03-14 2022-03-14 09:52:30 75 2 60 96.07 0 0 1 0
92 2022-03-14 2022-03-14 09:52:31 79 0 23 82.28 0 0 1 0
93 2022-03-14 2022-03-14 09:52:32 16 0 0 16.00 0 0 0 1
94 2022-03-14 2022-03-14 09:52:33 7 0 0 7.00 0 0 0 1
95 2022-03-14 2022-03-14 09:52:34 6 0 0 6.00 0 0 0 1
96 2022-03-14 2022-03-14 09:52:35 0 0 0 0.00 0 0 0 1
97 2022-03-14 2022-03-14 09:52:36 0 0 0 0.00 0 0 0 1
98 2022-03-14 2022-03-14 09:52:37 0 0 0 0.00 0 0 0 1
99 2022-03-14 2022-03-14 09:52:38 0 0 0 0.00 0 0 0 1
100 2022-03-14 2022-03-14 09:52:39 0 0 0 0.00 0 0 0 1
PS 当前使用此代码按日期对所有列求和,可能有用吗?
Summary_PRE <- workday_PRE %>% group_by(Date) %>% mutate_if(is.character,as.numeric) %>% summarise(across(Axis1:Counter,sum))
Summary_PRE <- subset (Summary_PRE, select = -c(Axis1,Axis2,Axis3,VM))
编辑
> dput(head(pre,100))
structure(list(Date = structure(c(19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065, 19065,
19065, 19065, 19065, 19065, 19065, 19065), class = "Date"), Time = structure(c(1647265860,
1647265861, 1647265862, 1647265863, 1647265864, 1647265865, 1647265866,
1647265867, 1647265868, 1647265869, 1647265870, 1647265871, 1647265872,
1647265873, 1647265874, 1647265875, 1647265876, 1647265877, 1647265878,
1647265879, 1647265880, 1647265881, 1647265882, 1647265883, 1647265884,
1647265885, 1647265886, 1647265887, 1647265888, 1647265889, 1647265890,
1647265891, 1647265892, 1647265893, 1647265894, 1647265895, 1647265896,
1647265897, 1647265898, 1647265899, 1647265900, 1647265901, 1647265902,
1647265903, 1647265904, 1647265905, 1647265906, 1647265907, 1647265908,
1647265909, 1647265910, 1647265911, 1647265912, 1647265913, 1647265914,
1647265915, 1647265916, 1647265917, 1647265918, 1647265919, 1647265920,
1647265921, 1647265922, 1647265923, 1647265924, 1647265925, 1647265926,
1647265927, 1647265928, 1647265929, 1647265930, 1647265931, 1647265932,
1647265933, 1647265934, 1647265935, 1647265936, 1647265937, 1647265938,
1647265939, 1647265940, 1647265941, 1647265942, 1647265943, 1647265944,
1647265945, 1647265946, 1647265947, 1647265948, 1647265949, 1647265950,
1647265951, 1647265952, 1647265953, 1647265954, 1647265955, 1647265956,
1647265957, 1647265958, 1647265959), class = c("POSIXct", "POSIXt"
), tzone = ""), Axis1 = c(89, 88, 0, 0, 0, 0, 0, 0, 4, 0, 3,
9, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 11, 3, 0, 0,
0, 0, 0, 7, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 10, 1, 14, 0, 0, 9,
0, 0, 18, 13, 0, 0, 0, 0, 22, 6, 13, 65, 29, 8, 28, 31, 12, 16,
148, 75, 79, 16, 7, 6, 0, 0, 0, 0, 0), Axis2 = c(41, 135, 61,
25, 0, 0, 24, 28, 96, 11, 91, 44, 8, 8, 29, 1, 17, 0, 0, 0, 15,
0, 0, 0, 0, 28, 47, 28, 48, 0, 0, 0, 0, 0, 44, 46, 13, 0, 0,
0, 0, 22, 19, 6, 6, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 34, 0, 41, 52, 25, 24, 7, 0, 15, 18, 34, 6,
27, 21, 53, 56, 10, 70, 24, 7, 10, 50, 81, 59, 12, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0), Axis3 = c(39, 117, 8, 0, 0, 0, 35, 0, 20,
0, 22, 2, 16, 21, 48, 3, 35, 0, 5, 29, 32, 0, 0, 0, 0, 4, 26,
68, 5, 0, 0, 0, 0, 0, 20, 39, 63, 11, 0, 0, 0, 24, 21, 17, 0,
46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 64,
62, 0, 69, 40, 46, 41, 37, 0, 57, 86, 47, 1, 61, 5, 62, 12, 8,
120, 47, 43, 90, 65, 53, 33, 99, 60, 23, 0, 0, 0, 0, 0, 0, 0,
0), VM = c(105.47, 199.14, 61.52, 25, 0, 0, 42.44, 28, 98.14,
11, 93.67, 44.96, 18.57, 22.47, 56.09, 3.16, 38.91, 0, 5, 29,
35.34, 0, 0, 0, 0, 28.28, 55.26, 74.36, 48.35, 0, 0, 0, 0, 0,
48.84, 61.13, 64.34, 11, 0, 0, 0, 32.56, 28.32, 18.03, 6, 48.08,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.81, 64.2,
71.41, 1, 81.47, 65.6, 52.35, 48.35, 37.66, 0, 61.63, 88.82,
58.01, 6.08, 66.71, 21.59, 84.48, 57.58, 18.25, 153.38, 60.22,
44.29, 94.78, 87.67, 97.54, 69.47, 178.46, 96.07, 82.28, 16,
7, 6, 0, 0, 0, 0, 0), Standing = c(0, 0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1,
1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0), Stepping = c(0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0), Cycling = c(1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0), New_Sitting = c(0, 0, 0, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1)), row.names = c(NA, 100L), class = "data.frame")
我猜测“它们可以是 1、2、3、4 而不是全 1”是指您想要将单个检测转换为某种度量,以捕获随时间变化的频率。我任意总结了滚动 1 分钟时间范围内的检测结果(如果你想要更短的时间 window,你可以使用 lubridate::seconds(10)
之类的东西)。然后我 pivot_longer 将这四列放入一对匹配的“名称”(来自 orig 列)和“值”(来自 orig 列),并绘制它们。请注意,我按日期分面,但给每个分面一个自由的 x 轴刻度,因此在 multi-day 数据中你应该看到一个与当天范围匹配的 x 轴。
pre %>%
# change columns 7-10 to sum over a 1 minute rolling period
mutate(across(7:10, ~slider::slide_index_dbl(., Time, sum,
.before = lubridate::minutes(1)))) %>%
pivot_longer(7:10) %>%
ggplot(aes(Time, value, color = name)) +
geom_line() +
facet_wrap(~Date, scales = "free_x")