在大多数情况下,我们使用 R 将数字时间转换为 POSIXct 格式。但是,如果我们想比较两个时间点,那么我们更喜欢数字时间格式。例如,我的日期格式类似于“2001-03-13 10:31:00”,
begin <- "2001-03-13 10:31:00"
使用 R,我想将其转换为数字(例如儒略时间),可能类似于 1970-01-01 00:00:00 和 2001-03-13 10:31:00 之间经过的秒数。
你有什么建议吗?
儒略历始于公元前 45 年(公元 709 年),是尤利乌斯·凯撒对罗马历法的改革。它是在与亚历山大天文学家索西基因协商后选择的,可能是为了近似回归年(至少自喜帕恰斯以来已知)而设计的。看http://en.wikipedia.org/wiki/Julian_calendar http://en.wikipedia.org/wiki/Julian_calendar
如果您只想从字符向量中删除 ":" 、 " " 和 "-" 那么这就足够了:
end <- gsub("[: -]", "" , begin, perl=TRUE)
#> end
#[1] "20010313103100"
您应该阅读大约 1/4 的部分?regex
about 字符类。由于“-”在该上下文中作为范围运算符很特殊,因此需要将其放在第一个或最后一个。
编辑后,答案显然就是 @joran 写的,除了您需要首先转换为 DateTime 类:
as.numeric(as.POSIXct(begin))
#[1] 984497460
另一点需要指出的是比较运算符do适用于 Date 和 DateTime 类变量,因此可能根本不需要转换。这将“开始”与一秒后的时间进行比较,并正确报告开始时间更早:
as.POSIXct(begin) < as.POSIXct(begin) +1
#[1] TRUE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)