【发布时间】:2016-01-02 08:04:37
【问题描述】:
我有一个合理的时间数据量,我想把它放在一个频率图中,其中 X 轴是几个时间间隔,Y 轴是我拥有的数据量在此期间收集。看这个例子:
假设我有这个列表:
[10:17:55, 10:37:40, 10:40:26, 10:48:18, 11:00:17, 11:01:12, 11:06:58, 11:09:20, 11:43:41, 11:48:24, 11:49:14, 12:07:31, 12:10:52, 12:10:52, 12:19:00, 12:19:00, 12:19:43, 12:20:55, 12:38:27, 12:38:27, 12:55:09, 12:55:10, 12:57:31, 12:57:31, 13:04:16, 13:04:16, 13:06:51 13:06:51, 14:55:06, 14:56:10, 15:01:30, 15:28:42, 3:29:17, 15:35:33, 15:58:32, 16:05:07, 16:09:16, 16:10:36, 16:32:57, 16:32:57, 16:34:32, 16:38:16, 17:43:27, 17:53:01, 17:56:14, 18:08:21, 18:17:23, 18:37:23, 18:37:23, 18:43:13, 18:43:13 18:51:43, 18:51:43, 19:05:39, 19:05:39]
我想绘制一个直方图,显示每隔 1 小时或 30 分钟(仍在决定中)有多少个值,例如:
10h - 11h: 4
11h - 12h: 7
.
.
.
19h - 20h: 2
但所有这些都在图表中表示。我知道如何在 R 中绘制直方图的基本知识,但不知道如何做到这一点。这些天我看到一些答案在制作情节,这不太适用,因为这些值是在不同的日子收集的......你们能帮帮我吗?
编辑:这是列表中的dput():
structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L,
13L, 13L, 14L, 14L, 15L, 16L, 17L, 17L, 18L, 19L, 20L, 20L, 21L,
21L, 22L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L,
33L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 41L, 42L, 42L,
43L, 43L, 44L, 44L), .Label = c("10:17:55", "10:37:40", "10:40:26",
"10:48:18", "11:00:17", "11:01:12", "11:06:58", "11:09:20", "11:43:41",
"11:48:24", "11:49:14", "12:07:31", "12:10:52", "12:19:00", "12:19:43",
"12:20:55", "12:38:27", "12:55:09", "12:55:10", "12:57:31", "13:04:16",
"13:06:51", "14:55:06", "14:56:10", "15:01:30", "15:28:42", "15:29:17",
"15:35:33", "15:58:32", "16:05:07", "16:09:16", "16:10:36", "16:32:57",
"16:34:32", "16:38:16", "17:43:27", "17:53:01", "17:56:14", "18:08:21",
"18:17:23", "18:37:23", "18:43:13", "18:51:43", "19:05:39"), class = "factor")`
【问题讨论】:
-
假设它们是日期:
hist(as.numeric(format(hour_dat,"%H")),breaks=24)基本上你想先隔离小时。格式会吐出一个字符,所以需要转换成数字。 -
当我收集它们时,我取消了日期值。我想现在它们是纯时间数据......如果是这样,我将如何进行?当我尝试应用您的解决方案时,它会抛出“无效的 'trim' 参数”。
-
请
dput()您的数据。 -
请将该 png 中的信息添加到您提出的问题中。
dput()的图片不允许用户将信息输入到他们的 R 会话中。只需edit 提出问题,我们就可以为您提供进一步的帮助。
标签: r datetime time plot histogram