【发布时间】:2016-12-18 02:39:10
【问题描述】:
我知道这是一个常见问题,但我看到的许多其他问题都没有为我解决这个问题。我正在尝试将数字时间戳转换为 POSIXct,但无论我做什么,它都会给我 NA。例如:
as.POSIXct(20090319043255, format="%Y%m%d%H%M%S", origin="1970-01-01")
我已经尝试了几乎所有我能想到的格式变化:插入空格、更改原点格式、不包括原点(这只是给我“必须提供原点”错误),一切。我难住了。我错过了什么愚蠢的东西吗?
在你问之前,是的,我已经检查了语言环境。我在美国。
【问题讨论】:
-
输入需要是一个字符串。
as.POSIXct(as.character(20090319043255), format="%Y%m%d%H%M%S")工作。 -
为什么数字对象在这种情况下不起作用?我不知道这背后的原因。
-
带有数值,它被解释为一个数字时间作为一个纪元以来的秒数,在这种情况下你不需要
format参数,但是,我不相信这会给你正确的输出,因为你的值显然是一个带有格式的字符串。 -
Psidom 完全正确。如果您希望 as.POSIXct 与数字参数一起正常工作,则必须使用自起源以来的秒数。试试这个例如:
as.POSIXct(1238000000, origin="1970-01-01") -
我想我明白了。因此,如果我使用数字对象呈现 as.POSIXct 命令,R 假设我在询问自原点以来经过的时间量,但如果我给它一个字符对象,它假设我希望它被强制转换为 POSIXct 对象。对吗?