第一列是一年中的第二列,第二列是时间(即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”)
但没有获得所需的输出。我出错的任何评论?
干杯,
纳文
答案 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"