gpt4 book ai didi

r - 从 POSIXct 中提取时间

转载 作者:行者123 更新时间:2023-12-03 05:18:24 25 4
gpt4 key购买 nike

如何从一系列 POSIXct 对象中提取时间并丢弃日期部分?

例如,我有:

times <- structure(c(1331086009.50098, 1331091427.42461, 1331252565.99979, 
1331252675.81601, 1331262597.72474, 1331262641.11786, 1331269557.4059,
1331278779.26727, 1331448476.96126, 1331452596.13806), class = c("POSIXct",
"POSIXt"))

对应于这些日期:

"2012-03-07 03:06:49 CET" "2012-03-07 04:37:07 CET" 
"2012-03-09 01:22:45 CET" "2012-03-09 01:24:35 CET"
"2012-03-09 04:09:57 CET" "2012-03-09 04:10:41 CET"
"2012-03-09 06:05:57 CET" "2012-03-09 08:39:39 CET"
"2012-03-11 07:47:56 CET" "2012-03-11 08:56:36 CET"

现在,我有一些当时测量的参数值:

val <- c(1.25343125e-05, 0.00022890575, 
3.9269125e-05, 0.0002285681875,
4.26353125e-05, 5.982625e-05,
2.09575e-05, 0.0001516951251,
2.653125e-05, 0.0001021391875)

我想绘制 val 与一天中时间的关系图,无论测量 val 的具体日期如何。

是否有特定的功能可以让我做到这一点?

最佳答案

您可以使用strftime将日期时间转换为任何字符格式:

> t <- strftime(times, format="%H:%M:%S")
> t
[1] "02:06:49" "03:37:07" "00:22:45" "00:24:35" "03:09:57" "03:10:41"
[7] "05:05:57" "07:39:39" "06:47:56" "07:56:36"

但这并没有多大帮助,因为您想要绘制数据。一种解决方法是从您的时间中删除日期元素,然后向所有时间添加相同的日期:

> xx <- as.POSIXct(t, format="%H:%M:%S")
> xx
[1] "2012-03-23 02:06:49 GMT" "2012-03-23 03:37:07 GMT"
[3] "2012-03-23 00:22:45 GMT" "2012-03-23 00:24:35 GMT"
[5] "2012-03-23 03:09:57 GMT" "2012-03-23 03:10:41 GMT"
[7] "2012-03-23 05:05:57 GMT" "2012-03-23 07:39:39 GMT"
[9] "2012-03-23 06:47:56 GMT" "2012-03-23 07:56:36 GMT"

现在您可以在绘图中使用这些datetime对象:

plot(xx, rnorm(length(xx)), xlab="Time", ylab="Random value")

enter image description here

<小时/>

如需更多帮助,请参阅?DateTimeClasses

关于r - 从 POSIXct 中提取时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9839343/

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