使用功能strptime()时遇到意外情况。我所拥有的日期格式为“2013年1月22日晚上11点”。我为此使用的格式为“%m/%d/%Y%I:%M:%S%p”。
代码如下。
strptime("1/22/2013 11:00:00 p.m",format="%m/%d/%Y %I:%M:%S %p")
[1] NA
但是如果我使用
strptime("1/22/2013 11:00:00 pm",format="%m/%d/%Y %I:%M:%S %p")
[1] "2013-01-22 23:00:00"
我得到适当的结果。
因此,此功能也没有足够的strptime来检测p.m及其变化(例如p.m)。等代替PM或pm。这是R中的错误吗?
我在Windows 7 32位上使用R.14.2的R版本
最佳答案
这不是错误,但是strptime
希望以标准化方式获取信息。 %p
是:
AM/PM indicator in the locale. Used in conjunction with ‘%I’ and not with ‘%H’. An empty string in some locales.
在您的语言环境中,这被定义为
AM/am
和PM/pm
。 R是一种形式语言,您需要遵守它所施加的规则。如果您定义了一个级别为flavor
,color
,taste
的因子,则不能指望能够使用colour
和flavour
作为引用此因子的方法。即使您似乎很明显这些代表相同的概念,R还是一种没有人为灵活性的形式语言。
关于r - strptime无法正确识别AM/PM字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455593/