[BioC] BUG: median(IRanges::Rle(NA), na.rm=TRUE)) should return NA
Hervé Pagès
hpages at fhcrc.org
Fri Sep 6 19:22:04 CEST 2013
Hi Malcolm,
Thanks for reporting this. A fix is on its way (in IRanges 1.19.30,
will be in devel). With this version:
> Rle()[FALSE]
logical-Rle of length 0 with 0 runs
Lengths:
Values :
More generally, most Vector derivatives now support subsetting by a
logical vector longer than 'x' as long as all the out of bounds
subscript elements are FALSE:
> IRanges(1:2, 4)[c(FALSE, TRUE, FALSE)]
IRanges of length 1
start end width
[1] 2 4 3
With this change:
> median(Rle(NA), na.rm=TRUE)
[1] NA
and:
> median(Rle(integer(0)))
[1] NA # NA_integer_
> median(Rle(logical(0)))
[1] NA # logical NA
> median(Rle())
[1] NA # logical NA
The reason the last one returns a logical NA is because the 'Rle()'
call is equivalent to 'Rle(logical(0))'.
Cheers,
H.
On 09/04/2013 07:53 AM, Cook, Malcolm wrote:
> A little further sleuthing suggests that perhaps the more general issues is that
>
>> Rle()[FALSE]
> Error in Rle()[FALSE] : subscript out of bounds
> # but
>> vector()[FALSE][NA]
> [1] NA
>
>
>
> >-----Original Message-----
> >From: Cook, Malcolm
> >Sent: Wednesday, September 04, 2013 9:28 AM
> >To: 'bioconductor at r-project.org'; 'Hervé Pagès'; 'lawrence.michael at gene.com'
> >Cc: Chen, Guangbo; Johnston, Jeffrey
> >Subject: BUG: median(IRanges::Rle(NA),na.rm=TRUE)) should return NA
> >
> >Hi,
> >
> >I think the Rle functions should preserve semantics from stats.
> >
> >Here is at least one case where they do not:
> >
> >> median(Rle(NA),na.rm=TRUE)
> >Error in x[FALSE] : subscript out of bounds
> >
> ># but:
> >
> >> median(c(NA),na.rm=TRUE)
> >[1] NA
> >
> ># some other border cases:
> >
> >> median(c())
> >NULL
> ># arguably correct, if you read the docs and appreciate that as(NA,class(c())) is NULL
> >
> >> median(Rle())
> >Error in x[FALSE] : subscript out of bounds
> ># should probably be NULL
> >
> >
> >Agreed?
> >
> >Can be fixed?
> >
> >Thanks!
> >
> >~ Malcolm Cook
> >Computational Biology / Shilatifard Lab - Stowers Institute for Medical Research - Kansas City
> >
>
--
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 Bioconductor
mailing list