[英]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
而不是strptime
和format
而不是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.