我有一个如下数据,我想像以前一样使用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”版本转换为日期对象?
答案 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")