[BioC] bug in combine

Seth Falcon sfalcon at fhcrc.org
Fri Jan 22 06:04:44 CET 2010


On 1/21/10 7:06 PM, Kasper Daniel Hansen wrote:
> The combine method with signature (x = data.frame, y = data.frame)
> assumes that the class of a given column is a one-length vector (in
> various if and switch statements).  However, class(x) can return a
> vector of length > 1 for S3 objects.
> 
> This is the case for the DataTime column in the phenoData for an
> object created by oligo::read.celfiles.  This column contains the
> scan date of the arrays and is of class [1] "POSIXt"  "POSIXct"
> 
> Hence combine() fails for celfile objects created by the oligo
> package.  Or at least for the exon arrays I am looking at right now.
> 
> If I (temporarily) fix this so that the class(pData(XX)$DateTime) has
> length 1 (by doing class(pData(XX)$DateTime <- "POSIXt") , combine()
> works.
> 
> My guess is that the method could be fixed by replacing certain
> class() calls with class()[1].

We will take a look.  I suspect that we might want to do something a bit
more subtle since the reason that class() returns a vector of length
more than one is to describe inheritance for the S3 case.

+ seth



More information about the Bioconductor mailing list