合并“时间”和“日期”列时不希望的NA

时间:2019-03-30 20:06:49

标签: r posixct

我有以下数据:

> head(dataraw)
   GMT_DATE GMT_TIME  LATITUDE LONGITUDE
1: 5/5/2016 13:00:30 -2.156247  35.44368
2: 5/5/2016 14:00:24 -2.202152  35.44438
3: 5/6/2016 05:02:48 -2.144972  35.56301
4: 5/6/2016 06:00:30 -2.257708  35.46812
5: 5/6/2016 07:00:24 -2.427338  35.37436
6: 5/6/2016 08:00:59 -2.408157  35.34967

我正在使用以下代码合并列GMT_DATEGMT_TIME。请同时找到输出示例:

> dataraw$`Date & Time [Local]`<-as.POSIXct(paste(dataraw$GMT_DATE, dataraw$GMT_TIME), format="%m-%d-%y %H:%M:%S")
> head(dataraw)
   GMT_DATE GMT_TIME  LATITUDE LONGITUDE Date & Time [Local]
1: 5/5/2016 13:00:30 -2.156247  35.44368                <NA>
2: 5/5/2016 14:00:24 -2.202152  35.44438                <NA>
3: 5/6/2016 05:02:48 -2.144972  35.56301                <NA>
4: 5/6/2016 06:00:30 -2.257708  35.46812                <NA>
5: 5/6/2016 07:00:24 -2.427338  35.37436                <NA>
6: 5/6/2016 08:00:59 -2.408157  35.34967                <NA>

我使用了来自其他帖子的答案,但是代码不适用于我的数据。有什么想法或我可能做错了什么吗?

任何输入都值得赞赏

1 个答案:

答案 0 :(得分:1)

这是因为使用了日期分隔符(/)和年份的格式(4位数字)

# format should be format="%m/%d/%Y %H:%M:%S

dataraw$`Date & Time [Local]`<-as.POSIXct(paste(dataraw$GMT_DATE, dataraw$GMT_TIME), 
                                      format="%m/%d/%Y %H:%M:%S")
> dataraw
  V1 GMT_DATE GMT_TIME  LATITUDE LONGITUDE Date & Time [Local]
1 1: 5/5/2016 13:00:30 -2.156247  35.44368 2016-05-05 13:00:30
2 2: 5/5/2016 14:00:24 -2.202152  35.44438 2016-05-05 14:00:24
3 3: 5/6/2016 05:02:48 -2.144972  35.56301 2016-05-06 05:02:48
4 4: 5/6/2016 06:00:30 -2.257708  35.46812 2016-05-06 06:00:30
5 5: 5/6/2016 07:00:24 -2.427338  35.37436 2016-05-06 07:00:24
6 6: 5/6/2016 08:00:59 -2.408157  35.34967 2016-05-06 08:00:59