如何从一系列丢弃日期部分的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的具体日期。
有没有特定的函数可以让我这样做呢?
发布于 2018-11-21 00:21:12
data.table
包有一个'as.ITime
‘函数,使用下面的函数可以有效地做到这一点:
library(data.table)
x <- "2012-03-07 03:06:49 CET"
as.IDate(x) # Output is "2012-03-07"
as.ITime(x) # Output is "03:06:49"
发布于 2012-03-23 20:57:00
我找不到任何精确处理时钟时间的函数,所以我只使用package:lubridate中的一些函数,并使用午夜以来的秒数:
require(lubridate)
clockS = function(t){hour(t)*3600+minute(t)*60+second(t)}
plot(clockS(times),val)
然后,您可能想要查看一些轴代码,以找出如何很好地标记轴。
发布于 2014-05-27 10:47:35
午夜格林尼治标准时间的time_t
值始终可以被86400
(24 * 3600
)整除。因此,自午夜格林尼治标准时间开始的秒数的值是time %% 86400
。
小时在格林尼治标准时间是(time %% 86400) / 3600
,这可以用作绘图的x轴:
plot((as.numeric(times) %% 86400)/3600, val)
要针对时区进行调整,请在取模数之前调整时间,方法是添加时区比GMT早的秒数。例如,美国中部夏令时(CDT)比GMT晚5小时。要根据CDT中的时间进行绘图,请使用以下表达式:
plot(((as.numeric(times) - 5*3600) %% 86400)/3600, val)
https://stackoverflow.com/questions/9839343
复制相似问题