用R中的strptime()从字符串中提取时间,返回NA

sto*_*nfo 9 regex time r date strptime

我试图从R中的字符串中提取出时间,并且不能停止获得NA作为结果.我已经尝试了正则表达式标签的多种变体,但似乎无法解决这个简单的问题.任何帮助/澄清表示赞赏.

这是我的代码示例:

> x
[1] "2/7/2013 7:43"
> class(x)
[1] "character"
> z <- strptime(x, "%H:%M")
> z
[1] NA
Run Code Online (Sandbox Code Playgroud)

Jus*_*tin 14

R不知道你的字符串是一个日期时间.所以先做一个:

y <- strptime(x, format='%m/%d/%Y %H:%M')
Run Code Online (Sandbox Code Playgroud)

如果你想要获得日期,你可以这样做:

strptime(x, '%m/%d/%Y') 
Run Code Online (Sandbox Code Playgroud)

因为strptime丢弃了超出格式字符串的任何多余字符,但是您无法抓取尾随,%H:%M因为该函数不知道从哪里开始.

一旦它成为正确的日期时间类,您就可以执行以下操作:

strftime(y, '%H:%M')
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用as.POSIXlt,而不是strptimeformat代替strftime......但他们大致相当于.