【问题标题】:How to prevent NA's when binding date and time variables?绑定日期和时间变量时如何防止NA?
【发布时间】:2013-12-30 08:45:05
【问题描述】:

在我的数据集中,我有一列是日期,一列是时间:

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 文件确实包含零。

我该如何解决这个问题?

【问题讨论】:

    标签: r date time posixct


    【解决方案1】:

    使用sprintf 格式化前导零:

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

    所以:

     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
    

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 2014-12-27
      • 2017-06-16
      • 2015-09-04
      • 2013-10-18
      相关资源
      最近更新 更多