R - 使用 System.time 获取当前日期,并将时间更改为 timevis 时间线的固定值
Posted
技术标签:
【中文标题】R - 使用 System.time 获取当前日期,并将时间更改为 timevis 时间线的固定值【英文标题】:R - Using System.time to get current date, and change time to fixed values for timevis timeline 【发布时间】:2020-10-21 02:22:17 【问题描述】:我正在尝试使用 timevis 包创建交互式单日时间线构建器。进入时间轴的每个项目都会有一个以分钟为单位的“长度”属性。
我将时间线限制在今天上午 8 点到下午 5 点之间。
我希望每个项目在上午 8 点开始,但结束日期必须是
todayAM + length
如果需要,我可以更改长度的存储方式。
关于如何操纵时间的任何想法,以便我可以绘制基本块。 (然后用户将它们拖到时间轴上所需的位置。)
library(timevis)
today <- as.character(Sys.Date())
todayAM <- paste(today,"08:00:00")
todayPM <- paste(today, "17:00:00")
items <- data.frame(
category = c("Room","IceBreaker","Activity","Break"),
categoryid=c(1,2,3,4),
name = c("Big Room","Introductions","Red Rover","Lunch"),
length = c(480,60,120,90)
)
data <- data.frame(
id = 1:4,
start = c(todayAM, todayAM, todayAM, todayAM),
end = c(todayPM, todayPM, todayPM, todayPM),
content = items$name,
group = items$categoryid
)
groups <- data.frame(id= items$categoryid, content = items$category)
timevis(
data = data,
groups = groups,
fit = TRUE,
options = list(editable = TRUE, multiselect = TRUE, align = "center", stack = TRUE,
start = todayAM,
end = todayPM
)
)
【问题讨论】:
【参考方案1】:你可以这样做:
library(dplyr)
library(lubridate)
starthour <- 8
data <- items %>% mutate(start = as.POSIXct(Sys.Date()) + hours(starthour) + minutes(lag(cumsum(items$length),1,default=0)),
end = as.POSIXct(Sys.Date()) + hours(starthour) + minutes(cumsum(items$length)),
content = name)
timevis::timevis(
data = data,
fit = TRUE,
options = list(editable = TRUE, multiselect = TRUE, align = "center", stack = TRUE)
)
然后,您必须根据需要设置时区选项:as.POSIXct
创建 UTC 日期。
【讨论】:
谢谢!我真的很喜欢时代的累积来创造交错的布局。不幸的是,由于某些事件需要重叠,我不得不将其删除。 (主要是房间组,它将运行一整天,并导致所有内容都在这段时间内发生变化。)以上是关于R - 使用 System.time 获取当前日期,并将时间更改为 timevis 时间线的固定值的主要内容,如果未能解决你的问题,请参考以下文章
在 R system.time(exp) 输出中测量的“用户”和“系统”时间是多少?
R语言使用system.time函数统计多个函数运行的累加(累计)时间计算h2o包生成的多个算法模型进行特征重要度分析累计耗费的时间
R语言使用system.time函数统计多个函数运行的累加(累计)时间计算h2o包生成的多个算法模型进行特征重要度分析累计耗费的时间