R不规则时间格式

时间:2012-03-24 18:52:40

标签: r

第一列是一年中的第二列,第二列是时间(即2355表示23:55,0表示00:00,59表示00:59分钟):测量年份= 2011

2,2355,2.701 
2,2356,2.701 
2,2357,2.737
2,2358,2.805
2,2359,2.821
3,0,2.847
3,1,2.881
.
.
3,59,3.3
3,100,2.2
3,101,2.8
.
.
3,159,3.0
3,200,3.1  

我想在R中使用datetime类合并第1列和第2列,这样我就会得到一个以%Y-%m-%d%H开头的列:%M:%S

我试过了 datetime< - paste(2011,df $ V1,df $ V2,sep =“ - ”)
strptime(datetime,format =“%Y-%j-%M”)

但没有获得所需的输出。我出错的任何评论?
干杯,
纳文

1 个答案:

答案 0 :(得分:3)

除了输入小时格式规范外,还需要用前导0填充V2值。

> datetime <- paste(2011, dat$V1, sprintf("%00004d",dat$V2), sep="-")
> strptime(datetime, format="%Y-%j-%H%M")
 [1] "2011-01-02 23:55:00" "2011-01-02 23:56:00" "2011-01-02 23:57:00" "2011-01-02 23:58:00"
 [5] "2011-01-02 23:59:00" "2011-01-03 00:00:00" "2011-01-03 00:01:00" "2011-01-03 00:59:00"
 [9] "2011-01-03 01:00:00" "2011-01-03 01:01:00" "2011-01-03 01:59:00" "2011-01-03 02:00:00"