合并时间和日期列时不需要的NA

问题描述 投票:-1回答:1

我的数据如下:

> 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>

我使用了不同帖子的答案,但代码不适用于我的数据。任何想法或我可能做错什么?

任何输入都表示赞赏

r posixct
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.