我正在处理以'%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'))
答案 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"