[Bioc-devel] DataFrame's do not like ordered factors

Hervé Pagès hpages at fhcrc.org
Wed Mar 6 18:42:17 CET 2013


Hi Steve,

On 03/06/2013 09:10 AM, Steve Lianoglou wrote:
> I don't think I've seen this one discussed before .. consider:
>
> ========= Reproduce me ===========
> library(IRanges)
> df1 <- data.frame(a=rnorm(10), b=head(letters, 10))
> df2 <- transform(df1, b=factor(b))
> df3 <- transform(df1, b=factor(b, sample(b), ordered=TRUE))
>
> DF1 <- DataFrame(df1)
> DF2 <- DataFrame(df2)
> DF3 <- DataFrame(df3)
>
> ## Now let's take a look at them
> DF1 ## looks purty
>
> DF2 ## looks nice
>
> DF3 ## woops!
>
> DataFrame with 10 rows and 2 columns
> Error in matrix(unlist(lapply(object, function(x) paste("<", class(x),  :
>    length of 'dimnames' [2] not equal to array extent
> ===================================

This problem seems to be gone in BioC devel:

   > DF3
   DataFrame with 10 rows and 2 columns
                a         b
        <numeric> <ordered>
   1  -0.98455768         a
   2   0.35134835         b
   3   0.04657733         c
   4   1.86833121         d
   5   0.54396927         e
   6  -0.64201201         f
   7   0.45709514         g
   8   0.47964197         h
   9  -1.37778026         i
   10  0.07408252         j

   > sessionInfo()
   R Under development (unstable) (2013-02-19 r62008)
   Platform: x86_64-unknown-linux-gnu (64-bit)

   locale:
    [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
    [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
    [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
    [7] LC_PAPER=C                 LC_NAME=C
    [9] LC_ADDRESS=C               LC_TELEPHONE=C
   [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

   attached base packages:
   [1] parallel  stats     graphics  grDevices utils     datasets  methods
   [8] base

   other attached packages:
   [1] IRanges_1.17.35    BiocGenerics_0.5.6

   loaded via a namespace (and not attached):
   [1] stats4_3.0.0 tools_3.0.0

H.

>
> Here it only looks like it's messing w/ the `show` method, but it will
> bite you in other places where you expect DataFrame's to function "as
> normal."
>
> I'll take a deeper look at this after I get through a deadline for
> next week, but if someone has some time between now and then ...
>
> Relevant info:
>
> R version 2.15.2 Patched (2012-11-12 r61105)
> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
> ....
> other attached packages:
> [1] IRanges_1.16.6     BiocGenerics_0.4.0 devtools_1.1
>
>
> -steve
>

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the Bioc-devel mailing list