【发布时间】:2018-01-24 16:09:17
【问题描述】:
我正在尝试制作一个时间线,就像您使用任何 timevis、vistime 或时间线 R 软件包制作的一样,但我只对时间感兴趣,而不对日期感兴趣。我不介意在其中放置一个占位符日期,但似乎所有这些包都需要开始和结束时间来包含日期并在时间轴中包含日期。
我一直在寻找在时间线中不包含日期或仅打印时间但不打印任何这些包中的日期的方法,但找不到任何东西。有人有什么想法吗?
【问题讨论】:
我正在尝试制作一个时间线,就像您使用任何 timevis、vistime 或时间线 R 软件包制作的一样,但我只对时间感兴趣,而不对日期感兴趣。我不介意在其中放置一个占位符日期,但似乎所有这些包都需要开始和结束时间来包含日期并在时间轴中包含日期。
我一直在寻找在时间线中不包含日期或仅打印时间但不打印任何这些包中的日期的方法,但找不到任何东西。有人有什么想法吗?
【问题讨论】:
所有这些包都在后台使用as.POSIXct,这要求对象是Date 对象,并且不能仅与时间一起使用。因此,如果您的数据只有一天,您可以在时钟时间上添加日期(使用paste),例如vistime 将只显示时间(好吧,一个几乎完全隐藏在角落里的日期):
dat <- data.frame(event = 1:2,
start = c("14:00", "16:00"),
end = c("15:30", "17:00"))
# add a Date
dat[,c("start", "end")] <- sapply(dat[,c("start", "end")], function(x) paste(Sys.Date(), x))
vistime(dat)
我用的是vistime版本0.7.0.9000,可以通过执行devtools::install_github("shosaco/vistime")得到。
【讨论】:
如果您想在没有任何日期信息的情况下表示时间,您应该尝试使用包hms。它是 tidyverse 集合的一部分,被描述为:
用于存储持续时间或时间值并以 hh:mm:ss 格式显示它们的简单类。
使用示例:
library(hms)
hms(56, 34, 12)
#> 12:34:56
【讨论】: