R,strptime,No format =“%m-%d-%Y”?

时间:2014-01-28 23:43:03

标签: strptime

我有一个如下数据,我想像以前一样使用strptime,但不知何故它不起作用。

> ic.df$timeonly
 [1] "‎01-28-2014" "‎01-28-2014" "‎01-28-2014"


strptime(ic.df$timeonly,format="%m-%d-%Y")
[1] NA

(HMM ..)

strptime("01-28-2014",format="%m-%d-%Y")
[1] NA

(什么..?) 所以我交换了年,月,日的位置,这很有效。

strptime("2014-01-28",format="%Y-%m-%d")
[1] "2014-01-28"

任何人都可以解释这里发生了什么,或者我如何将“m-d-y”版本转换为日期对象?

2 个答案:

答案 0 :(得分:0)

对我来说它有效:

strptime("01-28-2014", "%m-%d-%Y")

此致

JDaniel

答案 1 :(得分:0)

粘贴"01-28-2014"时,在" 01"之前有一个特殊字符(隐藏)。导致NA错误,因为它试图在该字符串上使用特殊字符执行转换。

当您将其修改为strptime("2014-01-28",format="%Y-%m-%d")时,它会起作用,因为参数中的该字符不包含原始特殊字符。您可以将原始问题中的代码复制并粘贴到代码编辑器或RStudio控制台以进行验证。

作为建议,要将"01-28-2014"转换为R中的日期对象,您可以使用as.Date函数来处理通过strptime处理的处理:

  • as.Date("01-28-2014",format="%m-%d-%Y")