[Rd] extending the colClasses argument in read.table

Gabor Grothendieck ggrothendieck at gmail.com
Mon Nov 21 16:31:10 CET 2011


2011/11/21 Romain François <romain at r-enthusiasts.com>:
> Hello,
>
> We've released the int64 package to CRAN a few days ago. The package
> provides S4 classes "int64" and "uint64" that represent signed and unsigned
> 64 bit integer vectors.
>
> One further development of the package is to facilitate reading 64 bit
> integer data from csv, etc ... files.
>
> I have this function that wraps a call to read.csv to:
> - read the "int64" and "uint64" columns as "character"
> - converts them afterwards to the appropriate type
>

Try this:

> library(int64)
> Lines <- "A\n12\n"
>
> setAs("character", "int64", function(from) as.int64(from))
>
> DF <- read.csv(textConnection(Lines), colClasses = "int64")
>
> str(DF)
'data.frame':   1 obs. of  1 variable:
 $ A:Formal class 'int64' [package "int64"] with 2 slots
  .. ..@ .Data:List of 1
  .. .. ..$ : int  0 12
  .. ..@ NAMES: NULL

To convince ourselves that its translating from character to int64:

> setAs("character", "int64", function(from) {print(class(from)); as.int64(from)})
> DF <- read.csv(textConnection(Lines), colClasses = "int64")
[1] "character"


-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-devel mailing list