[BioC] bug in combine

Kasper Daniel Hansen khansen at stat.berkeley.edu
Fri Jan 22 04:06:59 CET 2010

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].


More information about the Bioconductor mailing list