我对R很陌生,发现难以分析时间数据。这是我正在使用的数据集的MONTHS: 33 DAYS: 1 (the only day to compute is the first day of first interval)
示例,其中包含数千行:
head()
在> head(datanet)
Date & Time [Local] meters
1: 18/06/2018 03:01 45.74068
2: 18/06/2018 03:06 15.22141
3: 18/06/2018 03:08 15.95937
4: 18/06/2018 03:12 22.53557
5: 18/06/2018 03:16 12.03683
6: 18/06/2018 03:20 18.73813
列上是时间戳记,在Date & Time [Local]
列上具有同一行和下一行的时间戳记之间的行进距离(以米为单位)的值。
例如:meters
米在45.74068
和18/06/2018 03:01
之间移动
我想创建一个数据集,根据18/06/2018 03:06
,我可以使用该数据集plot()
每天每小时(从00:00到23:00)的平均行驶距离数据集。可能的输出为(未填充datanet
值):
meters
> head(output)
Time meters
1: 00:00
2: 01:00
3: 02:00
4: 03:00
5: 04:00
6: 05:00
数据集将基于output
数据集中所有天的小时平均每日数据。
我将在下面上传更大的datanet
示例:
datanet
答案 0 :(得分:1)
如果您不在乎交叉/分配(例如,如果下一行是10米的2018-06-15 03:55
,那么如何从2018-06-15 04:02
进行分配),您可以执行以下简单操作:
library(tidyverse)
library(lubridate)
df %>%
mutate(
date = dmy_hm(date),
hour = hour(date)
) %>%
group_by(hour) %>%
summarise(
avg_meters = mean(meters)
)
# A tibble: 24 x 2
hour avg_meters
<int> <dbl>
1 0 12.3
2 1 7.62
3 2 1.36
4 3 7.92
5 4 4.33
6 5 8.06
7 6 29.7
8 7 18.9
9 8 19.8
10 9 11.5
# ... with 14 more rows
然后您可以添加:
%>%
ggplot(aes(x = hour, y = avg_meters)) +
geom_line()