[R] printing POSIXct values in table labels

David Kane <David Kane a296180 at arbres1a.fmr.com
Wed Mar 5 22:21:01 CET 2003


Hi,

I think that there is something that I am misunderstanding in creating tables
using dates that are of class POSIXct. Consider:

> x <- data.frame(date = as.POSIXct(strptime(c(rep("2002-10-17", 4), rep("1999-12-08", 2)), format = "%Y-%m-%d")))
> x
        date
1 2002-10-17
2 2002-10-17
3 2002-10-17
4 2002-10-17
5 1999-12-08
6 1999-12-08
> table(x$date)

 944629200 1034827200 
         2          4 

I understand that the headings here are the number of seconds since some
epoch. But shouldn't the values print out here as they print out in the
dataframe?

I can get the effect that I want using:

> table(format(x$date))

1999-12-08 2002-10-17 
         2          4 

The problem is that this can add a lot of time to the calculation in big
dataframes.

> x <- data.frame(date = as.POSIXct(strptime(c(rep("2002-10-17", 40000), rep("1999-12-08", 20000)), format = "%Y-%m-%d")))
> dim(x)
[1] 60000     1
> system.time(table(x$date))
> [1] 0.19 0.00 0.19 0.00 0.00
> system.time(table(format(x$date)))
[1] 18  0 19  0  0

Am I missing something?

> R.version
         _                   
platform sparc-sun-solaris2.6
arch     sparc               
os       solaris2.6          
system   sparc, solaris2.6   
status                       
major    1                   
minor    6.2                 
year     2003                
month    01                  
day      10                  
language R                   
> 

Thanks,

Dave Kane



More information about the R-help mailing list