以小时计划绘制时间?

时间:2015-10-06 13:06:27

标签: r ggplot2

我有这个数据集

    Time   Forums_Read
1   00:01   1
2   00:04   1
3   00:05   3
4   00:06   3
5   00:07   3
6   00:08   6
7   00:10   2
8   00:11   2
9   00:12   1

我正在尝试geom_line数据。但是,它必须是POSIXct类型。 列Time的结构是:

Factor w/ 1254 levels "00:01","00:04",..

有没有解决方案?

谢谢!

2 个答案:

答案 0 :(得分:3)

日期类POSIXct需要一个起点。我们可以使用任何一个,因为Time列中的值是相互比较的。此函数调用将日期转换为正确的格式。

df$Time <- as.POSIXct(df$Time, format="%M:%S")

我使用格式"%M:%S"来表示分钟和秒。如果您的数据中包含小时和分钟,请使用"%H:%M"。有关日期格式的详细信息,请参阅?strptime

答案 1 :(得分:2)

按照@Pierre Lafortune的评论,

Df$Time2 <- as.POSIXct(
  paste0(Sys.Date(), " 00:", as.character(Df$Time)))
##
library(ggplot2)
##
ggplot(
  data = Df,
  aes(x = Time2, y = Forums_Read)) +
  geom_line()

enter image description here

数据:

Df <- read.table(text = "    Time   Forums_Read
  1   00:01   1
  2   00:04   1
  3   00:05   3
  4   00:06   3
  5   00:07   3
  6   00:08   6
  7   00:10   2
  8   00:11   2
  9   00:12   1",
  header = TRUE,
  stringsAsFactors = TRUE)