[英]R: Why does strptime always return NA when I try to format a date string?
這是我的一些數據,從文件名 AttReport_all 中讀取:
Registration.Date Join.Time Leave.Time
1 Jul 05, 2011 09:30 PM EDT Jul 07, 2011 01:05 PM EDT Jul 07, 2011 01:53 PM EDT
2 Jul 05, 2011 10:20 AM EDT Jul 07, 2011 01:04 PM EDT Jul 07, 2011 01:53 PM EDT
3 Jul 04, 2011 02:41 PM EDT Jul 07, 2011 12:49 PM EDT Jul 07, 2011 01:53 PM EDT
4 Jul 04, 2011 11:38 PM EDT Jul 07, 2011 12:49 PM EDT Jul 07, 2011 01:54 PM EDT
5 Jul 05, 2011 11:41 AM EDT Jul 07, 2011 12:54 PM EDT Jul 07, 2011 01:54 PM EDT
6 Jul 07, 2011 11:08 AM EDT Jul 07, 2011 01:16 PM EDT Jul 07, 2011 01:53 PM EDT
如果我這樣做strptime(AttReport_all$Registration.Date, "%b %m, %Y %H:%M %p", tz="")
我會得到一個我期待日期的 NA 數組。
Sys.setlocale("LC_TIME", "C")
返回 "C"
typeof(AttReport_all$Registration.Date)
返回“整數”
is.factor(AttReport_all$Registration.Date)
返回 TRUE。
我錯過了什么?
這是版本 output,如果有幫助:平台 i386-pc-mingw32
拱 i386
操作系統 mingw32
系統 i386,mingw32
地位
主要2
未成年人 13.0
2011 年
04月
第 13 天
svn rev 55427
語言 R
version.string R 版本 2.13.0 (2011-04-13)
strptime
在第一個參數上自動運行as.character
(因此它是一個因素並不重要),並且任何未在format=
中指定的尾隨字符都將被忽略(因此“EDT”無關緊要)。
唯一的問題是確定的拼寫錯誤@Ben Bolker( %m
應該是%d
)和%H
應該是%I
( ?strptime
說你不應該使用%H
和%p
)。
# %b and %m are both *month* formats
strptime("Jul 05, 2011 09:30 PM EDT", "%b %m, %Y %H:%M %p", tz="")
# [1] NA
# change %m to %d and we no longer get NA, but the time is wrong (AM, not PM)
strptime("Jul 05, 2011 09:30 PM EDT", "%b %d, %Y %H:%M %p", tz="")
# [1] "2011-07-05 09:30:00"
# use %I (not %H) with %p
strptime("Jul 05, 2011 09:30 PM EDT", "%b %d, %Y %I:%M %p", tz="")
# [1] "2011-07-05 21:30:00"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.