R解析形式%j%Y的时间戳,没有前导零

时间:2014-09-11 03:39:16

标签: r strptime

我正在处理以'%j%Y%H:%M'形式给出的csv时间戳数据,没有前导零。以下是一些时间戳示例:

112005 22:00
1292005 6:00

R正在读005年第112天的第一行。如何让R正确解析这些信息?

我正在使用的代码不起作用:

train$TIMESTAMP <- strptime(train$TIMESTAMP, format='%j%Y %H:%M', tz='GMT')
train$hour <- as.numeric(format(train$TIMESTAMP, '%H'))

1 个答案:

答案 0 :(得分:1)

我认为没有任何简单的方法可以解读白天停止和年份开始的地方。也许你可以把它拆分成看似相关的年份(20XX):

gsub("^(\\d{1,3})(20\\d{2})","\\1 \\2",train$TIMESTAMP)
#[1] "11 2005 22:00" "129 2005 6:00"

并且做:

strptime(gsub("^(\\d{1,3})(20\\d{2})","\\1 \\2",train$TIMESTAMP), "%j %Y %H:%M")
#[1] "2005-01-11 22:00:00 EST" "2005-05-09 06:00:00 EST"