绘制时间以小时为单位?
问题描述:
我有这样的数据集绘制时间以小时为单位?
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类型的。 列时间的结构是:
Factor w/ 1254 levels "00:01","00:04",..
对此有任何解决方案?
谢谢!
答
日期CLA ss POSIXct
需要一个起点。我们可以使用任何数据,因为Time
列中的值正在彼此进行比较。此函数调用会将日期转换为适当的格式。
df$Time <- as.POSIXct(df$Time, format="%M:%S")
我用格式"%M:%S"
来表示分钟和秒。如果您的数据中包含小时和分钟,请使用"%H:%M"
。有关日期格式的更多信息,请参阅?strptime
。
+0
查看lubridate - 它对于管理时间基准非常有用 – Zach
答
随着@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()
数据:
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)
该类日期需要一个起点。您可以从中选择任意日期,如默认和图表。 'as.POSIXct(df $ Time,format =“%M:%S”)'。我认为那是几分钟和几秒钟。如果不是,请使用'“%H:%M”。 –
哼!有趣!它解决了!非常感谢!请给出答案,以便我选择你的最佳答案!再次感谢。 –
您是否将数据作为因子读取?也许你可以通过指定stringsAsFactors跳过分解步骤= FALSE – Zach