绑定日期和时间变量时如何防止NA?

时间:2013-12-30 08:45:05

标签: r date time posixct

在我的数据集中,我有一个包含日期的列和一个包含时间的列:

YYMMDD   TIME
19861226  74751.00
19871214 204951.05
19891201 200914.35
19910215  21116.54
19910425 102631.58
19910808  40114.65

当我想将这两个绑定到一个带df$datetime <- as.POSIXct(paste(df$YYMMDD,df$TIME),format='%Y%m%d %H%M%S')的变量时,我得到第1行,第4行和第6行的NA值。这可能是因为缺少零。原始的excel文件确实包含了零。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

使用sprintf格式化前导零:

sprintf("%09.2f",df$TIME)
[1] "074751.00" "204951.05" "200914.35" "021116.54" "102631.58" "040114.65"

S:

 df$datetime <- as.POSIXct(paste(df$YYMMDD,sprintf("%09.2f",df$TIME)),format='%Y%m%d %H%M%S')
 df
    YYMMDD      TIME            datetime
2 19861226  74751.00 1986-12-26 07:47:51
3 19871214 204951.05 1987-12-14 20:49:51
4 19891201 200914.35 1989-12-01 20:09:14
5 19910215  21116.54 1991-02-15 02:11:16
6 19910425 102631.58 1991-04-25 10:26:31
7 19910808  40114.65 1991-08-08 04:01:14