gpt4 book ai didi

r - 在 R 中处理时间戳

转载 作者:行者123 更新时间:2023-12-02 09:05:48 24 4
gpt4 key购买 nike

我有多个测量值列表。在每个列表中,时间戳都被格式化为字符串(“2009-12-24 21:00:07.0”),并且我知道列表中的每个测量值都以 5 秒分隔。我想将所有数据合并到 R 中的一个巨大的 data.frame 中。之后我希望能够轻松访问两个测量的时间差,因此我可能应该将数据转换为与字符不同的东西。

我应该使用哪种格式来存储时间?我应该使用某些包中的某种时间格式吗?

最佳答案

您想要来自基 R 的(标准)POSIXt 类型,它可以以“紧凑形式”作为 POSIXct (本质上是一个表示小数秒的 double 值,因为纪元)或 POSIXlt 中的长格式(包含子元素)。最酷的是算术等都在此定义 - 请参阅 help(DateTimeClasses)

简单示例:

R> now <- Sys.time()
R> now
[1] "2009-12-25 18:39:11 CST"
R> as.numeric(now)
[1] 1.262e+09
R> now + 10 # adds 10 seconds
[1] "2009-12-25 18:39:21 CST"
R> as.POSIXlt(now)
[1] "2009-12-25 18:39:11 CST"
R> str(as.POSIXlt(now))
POSIXlt[1:9], format: "2009-12-25 18:39:11"
R> unclass(as.POSIXlt(now))
$sec
[1] 11.79

$min
[1] 39

$hour
[1] 18

$mday
[1] 25

$mon
[1] 11

$year
[1] 109

$wday
[1] 5

$yday
[1] 358

$isdst
[1] 0

attr(,"tzone")
[1] "America/Chicago" "CST" "CDT"
R>

至于读入它们,请参阅help(strptime)

至于区别,也很简单:

R> Jan1 <- strptime("2009-01-01 00:00:00", "%Y-%m-%d %H:%M:%S")
R> difftime(now, Jan1, unit="week")
Time difference of 51.25 weeks
R>

最后,zoo package是一个极其通用且文档齐全的矩阵容器,具有相关的日期/时间索引。

关于r - 在 R 中处理时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1962278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com