[BioC] subsetting IntegerList by list names

Manuela Hummel Manuela.Hummel at crg.eu
Wed Nov 16 12:47:41 CET 2011


I realized that subsetting an IntegerList object (and probably other IRanges list objects) by the list names plus replacing list element values behaves unexpectedly (at least for me) when the list is not sorted by its element's names.

Here a short example:

> IL <- IntegerList(chr2=5, chr1=10)

> IL
CompressedIntegerList of length 2
[["chr2"]] 5
[["chr1"]] 10

Now I want to subset based on the list names:

> chrs <- c("chr1", "chr2")

> IL[chrs]
CompressedIntegerList of length 2
[["chr1"]] 10
[["chr2"]] 5

This gives me the elements in the expected order.

However, if I now want to replace the values of both elements, using the subsetting as before, the order of the list and the new element values is "mixed":

> IL[chrs] <- list(100, 50)

> IL
CompressedNumericList of length 2
[["chr2"]] 100
[["chr1"]] 50

I would have expected the value 100 for element "chr1" and 50 for element "chr2".

In this way at least it works with usual lists:

> L <- list(chr2=5, chr1=10)
> L
[1] 5

[1] 10

> L[chrs] <- list(100, 50)
> L
[1] 50

[1] 100

Thanks a lot for your comments

> sessionInfo()

R version 2.14.0 (2011-10-31)
Platform: i386-pc-mingw32/i386 (32-bit)

[1] LC_COLLATE=Spanish_Spain.1252  LC_CTYPE=Spanish_Spain.1252   
[3] LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C                  
[5] LC_TIME=Spanish_Spain.1252    

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

other attached packages:
[1] IRanges_1.12.1

loaded via a namespace (and not attached):
[1] tools_2.14.0

Manuela Hummel
Core Facilities - Microarrays Unit
Center for Genomic Regulation (CRG)
Dr. Aiguader 88, 4th floor, Office 439.01
08003 Barcelona
Phone: +34 93 316 0373
e-mail: manuela.hummel at crg.eu

More information about the Bioconductor mailing list