使用函数strptime()时遇到了一些意外的事情。我所拥有的日期格式包括“1/22/2013 11:00:00 P.M”。我使用的格式是“%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"
我得到了合适的结果。
因此,该特征缺乏检测p.m及其变化(如下午)的特征。等等PM或pm。这是R中的错误吗?
R的版本我在Windows 7 32位上使用R.14.2
答案 0 :(得分:11)
这不是错误,但strptime
期望以标准化方式获取信息。 %p
是:
语言环境中的AM / PM指示符。与'%I'一起使用 并且不与'%H'。某些语言环境中的空字符串。
在您的语言环境中,这被定义为AM/am
和PM/pm
。 R是一种形式语言,你需要遵守它所规定的规则。如果您定义具有级别flavor
,color
,taste
的因子,则您无法期望能够使用colour
和flavour
作为参考此问题的方法因子。尽管你们似乎很明显这些概念代表相同的概念,但R是一种没有人类灵活性的形式语言。
答案 1 :(得分:2)
library(lubridate)
mdy_hms("01/22/2013 11:00:00 PM")
结果:
[1] "2013-01-22 11:00:00 UTC"