I have encountered something unexpected while working with the function strptime(). The format of the date I have consists of "1/22/2013 11:00:00 P.M" . The format I am using for this is "%m/%d/%Y %I:%M:%S %p".
The code is as follows.
strptime("1/22/2013 11:00:00 p.m",format="%m/%d/%Y %I:%M:%S %p")
[1] NA
but if I use
strptime("1/22/2013 11:00:00 pm",format="%m/%d/%Y %I:%M:%S %p")
[1] "2013-01-22 23:00:00"
I get the appropriate result.
So does this feature lack in strptime to detect p.m and its variations such as p.m. etc in place of PM or pm. Is this a bug in R ?
The version of R I am using R.14.2 on windows 7 32-bit
The strptime() function converts the character string pointed to by buf to values which are stored in the tm structure pointed to by tm, using the format specified by format. The format is composed of zero or more directives.
Python time strptime() MethodThe format parameter uses the same directives as those used by strftime(); it defaults to "%a %b %d %H:%M:%S %Y" which matches the formatting returned by ctime(). If string cannot be parsed according to format, or if it has excess data after parsing, ValueError is raised.
strptime turns character representations into an object of class "POSIXlt" . The time zone is used to set the isdst component and to set the "tzone" attribute if tz != "" . If the specified time is invalid (for example '"2010-02-30 08:00"') all the components of the result are NA .
This is no bug, but strptime
expects the information in a standardised way. %p
is:
AM/PM indicator in the locale. Used in conjunction with ‘%I’ and not with ‘%H’. An empty string in some locales.
In you locale this is defined as AM/am
and PM/pm
. R is a formal language, and you need to stick to the rules it imposes. If you define a factor with levels flavor
, color
, taste
, you cannot expect to be able to use colour
and flavour
as ways to refer to this factor. Even though it seems obvious to you that these represent the same concept, R is a formal language without human flexibility.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With