以 08:00-08:15 等时间间隔运行
Posted
技术标签:
【中文标题】以 08:00-08:15 等时间间隔运行【英文标题】:Operating with time intervals like 08:00-08:15 【发布时间】:2010-10-04 11:45:02 【问题描述】:我想导入一个时间序列,其中第一个字段表示一个时期:
08:00-08:15
08:15-08:30
08:30-08:45
R 是否有任何功能可以巧妙地做到这一点?
谢谢!
更新:
按照 Godeke 的建议,我发现的最有希望的解决方案是 cron 包并使用 substring() 来提取间隔的开始。
我仍在处理相关问题,所以我会在到达那里时更新解决方案。
【问题讨论】:
as.difftime
可能也适合你。
【参考方案1】:
CRAN 显示了一个名为“chron”的主动更新包,用于处理日期。您可能想检查一下,以及在此处找到的其他一些模块:http://cran.r-project.org/web/views/TimeSeries.html
xts 和 zoo 在此之上处理不规则的时间序列数据。我对这些包不熟悉,但快速浏览一下就知道你应该能够通过拆分连字符并加载到它们提供的结构中来相当容易地使用它们。
【讨论】:
【参考方案2】:所以你得到了一个像c("08:00-08:15",08:15-08:30)
这样的字符向量,并且你想转换为内部 R 数据类型以保持一致性?查看 POSIXt 和 strftime 的帮助文件。
像这样的函数怎么样:
importTimes <- function(t)
t <- strsplit(t,"-")
return(lapply(t,strptime,format="%H:%M:%S"))
这将采用您描述的字符向量,并返回一个相同长度的列表,其中每个元素都是一个 POSIXt 2 向量,给出开始和结束时间(在今天的日期)。如果您愿意,可以在函数内的某处添加paste("1970-01-01",x)
,以标准化您正在查看的日期(如果这是一个问题)。
这有帮助吗?
【讨论】:
以上是关于以 08:00-08:15 等时间间隔运行的主要内容,如果未能解决你的问题,请参考以下文章
如何在 .Net 5.0 C# 或 F# 中编写以特定时间间隔定期运行的代码