簡體   English   中英

R:為什么當我嘗試格式化日期字符串時 strptime 總是返回 NA?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM