繁体   English   中英

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

[英]Extracting time from character string with strptime() in R, returning NA

我正在尝试从R中的字符串中提取时间,因此无法停止获取NA。 我已经尝试过多种正则表达式标签的变体,但似乎无法解决这个简单的问题。 任何帮助/澄清表示赞赏。

这是我的示例代码:

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

R不知道您的字符串是日期时间。 因此,首先使它成为:

y <- strptime(x, format='%m/%d/%Y %H:%M')

如果您只是想获取日期,则可以执行以下操作:

strptime(x, '%m/%d/%Y') 

因为strptime会丢弃格式字符串之后的所有多余字符,但是由于该函数不知道从何处开始,因此您无法获取结尾的%H:%M

一旦它是适当的日期时间类,就可以对其进行操作:

strftime(y, '%H:%M')

我更喜欢使用as.POSIXlt而不是strptimeformat而不是strftime ...,但是它们大致相等。

如果您的目标是获取带时间的字符串,则可以在sub使用正则表达式。 如果对没有日期信息的字符串使用strptime ,则使用今天的日期。

x <- "2/7/2013 7:43"

x2 <- sub(".* ", "", x)
# [1] "7:43"

strptime(x2, "%R")
# [1] "2014-02-05 07:43:00"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM