Hello everyone,

I'm having a big trouble with which seems to be a bug in as.POSIXct()
date-time conversion. I have massive GPS datasets in which each location
has it's own date and time attribute. As I convert them to POSIXct format,
1300 cases (of about half a million locations) simply return NA values.

I picked up a small sample of failed cases and normal cases to demonstrate
the problem (see below). Can anyone understand what's happening
Thanks

## Data input
>date<-rep("2012/10/21", 14)
>hour<- c("00:02:38","00:11:05","00:19:33","00:28:00","00:36:27","00:44:57",
+"00:53:27","01:03:28","01:10:15","01:16:34","01:24:00","01:30:13","01:47:58",
+"01:52:43")
>time<-as.data.frame(cbind(date,hour))
# as.POSIXct formating
time$convert<-as.POSIXct(paste(time[,1],time[,2]),format="%Y/%m/%d
%H:%M:%S")
         date     hour             convert
1  2012/10/21 00:02:38                <NA>
2  2012/10/21 00:11:05                <NA>
3  2012/10/21 00:19:33                <NA>
4  2012/10/21 00:28:00                <NA>
5  2012/10/21 00:36:27                <NA>
6  2012/10/21 00:44:57                <NA>
7  2012/10/21 00:53:27                <NA>
8  2012/10/21 01:03:28 2012-10-21 01:03:28
9  2012/10/21 01:10:15 2012-10-21 01:10:15
10 2012/10/21 01:16:34 2012-10-21 01:16:34
11 2012/10/21 01:24:00 2012-10-21 01:24:00
12 2012/10/21 01:30:13 2012-10-21 01:30:13
13 2012/10/21 01:47:58 2012-10-21 01:47:58
14 2012/10/21 01:52:43 2012-10-21 01:52:43
## Se that the problem occur specifically with information concerning
21/oct/2012 between midnight and 1am

# alternatively strptime converting
>time$convert<-strptime(paste(time[,1],time[,2]),format="%Y/%m/%d %H:%M:%S")
>time$convert
         date     hour             convert
1  2012/10/21 00:02:38 2012-10-21 00:02:38
2  2012/10/21 00:11:05 2012-10-21 00:11:05
3  2012/10/21 00:19:33 2012-10-21 00:19:33
4  2012/10/21 00:28:00 2012-10-21 00:28:00
5  2012/10/21 00:36:27 2012-10-21 00:36:27
6  2012/10/21 00:44:57 2012-10-21 00:44:57
7  2012/10/21 00:53:27 2012-10-21 00:53:27
8  2012/10/21 01:03:28 2012-10-21 01:03:28
9  2012/10/21 01:10:15 2012-10-21 01:10:15
10 2012/10/21 01:16:34 2012-10-21 01:16:34
11 2012/10/21 01:24:00 2012-10-21 01:24:00
12 2012/10/21 01:30:13 2012-10-21 01:30:13
13 2012/10/21 01:47:58 2012-10-21 01:47:58
14 2012/10/21 01:52:43 2012-10-21 01:52:43
# seems ok, however try any further commands:
>range(time$convert)
[1] NA NA
>min(time$convert)
[1] NA
>time$convert[1] - time$convert[2]
Time difference of NA secs

 Just in case it helps my session information area
> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=Portuguese_Brazil.1252  LC_CTYPE=Portuguese_Brazil.1252
[3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C
[5] LC_TIME=Portuguese_Brazil.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] grid_2.15.1    lattice_0.20-6 nlme_3.1-104



*Carlos André Zucco*
---------------------------------------------------------------------------------
Biólogo, Mestre em Ecologia
Laboratório de Ecologia e Conservação de Populações (LECP/IB/UFRJ)
Doutorando do Programa de Pós-graduação em Ecologia da UFRJ
---------------------------------------------------------------------------------

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to