Thomas Levine
2012-Apr-23 15:48 UTC
[R] Can I specify POSIX[cl]t column classes inside read.csv?
I'm loading a nicely formatted csv file. ? ? #!/usr/bin/env Rscript ? ? kpi <- read.csv( ? ? ? # This is a dump of the username, date_joined and last_login columns ? ? ? # from the auth_user Django table. ? ? ? 'data/2012-04-23.csv', ? ? ? colClasses = c('character') ? ? ) ? ? print(kpi[sample(nrow(kpi), 3),2:3]) Here's what the three rows I printed look like. ? ? ? ? ? ? ?last_login ? ? ? ? date_joined ? ? 2012-02-22 02:44:11 2011-09-19 03:07:35 ? ? 2011-09-16 01:34:41 2011-09-16 01:34:41 ? ? 2011-07-02 20:29:17 2011-07-02 20:29:17 Once I load them, I'm converting the datetimes to datetimes. ? ? kpi$last_login <- as.POSIXlt(kpi$last_login) ? ? kpi$date_joined <- as.POSIXlt(kpi$date_joined) Can I do this inside of read.csv by specifying colClasses? It's obviously not a problem if I can't; it just seems like I should be able to. Note that the following doesn't work because it doesn't save the times. ? ? colClasses = c('character', 'Date', 'Date') Thanks Tom
David Winsemius
2012-Apr-23 17:23 UTC
[R] Can I specify POSIX[cl]t column classes inside read.csv?
On Apr 23, 2012, at 11:48 AM, Thomas Levine wrote:> I'm loading a nicely formatted csv file. > > #!/usr/bin/env Rscript > kpi <- read.csv( > # This is a dump of the username, date_joined and last_login > columns > # from the auth_user Django table. > 'data/2012-04-23.csv', > colClasses = c('character') > ) > print(kpi[sample(nrow(kpi), 3),2:3]) > > Here's what the three rows I printed look like. > > last_login date_joined > 2012-02-22 02:44:11 2011-09-19 03:07:35 > 2011-09-16 01:34:41 2011-09-16 01:34:41 > 2011-07-02 20:29:17 2011-07-02 20:29:17 > > Once I load them, I'm converting the datetimes to datetimes. > > kpi$last_login <- as.POSIXlt(kpi$last_login) > kpi$date_joined <- as.POSIXlt(kpi$date_joined) > > Can I do this inside of read.csv by specifying colClasses?Possibly. If there is an "as" function for a particular class, it can be used in the colClasses vector of read.* functions. It appears that your input file might have the right combination of formats and separators for this to succeed.> It's > obviously not a problem if I can't; it just seems like I should be > able to. > > Note that the following doesn't work because it doesn't save the > times. > > colClasses = c('character', 'Date', 'Date')Try instead: colClasses = c('character', 'POSIXlt', 'POSIXlt') -- David Winsemius, MD West Hartford, CT