Bioconductor / S4Vectors

Foundation of vector-like and list-like containers in Bioconductor
https://bioconductor.org/packages/S4Vectors
17 stars 20 forks source link

`subset()` fails with zero-dimension objects and missing values #67

Open mtmorgan opened 4 years ago

mtmorgan commented 4 years ago

Compare

> subset(DataFrame())
Error: subscript is a logical vector with out-of-bounds TRUE values
> subset(data.frame())
data frame with 0 columns and 0 rows

This is because https://github.com/Bioconductor/S4Vectors/blob/b14a989db670382566500d025e49e15fbf46ac12/R/eval-utils.R#L47 returns a length 1 logical vector regardless the dimensions of x.

This is the reason for https://github.com/Bioconductor/VariantAnnotation/issues/40, with j incorrect at https://github.com/Bioconductor/VariantAnnotation/blob/61ecbd8e019cd3e15013506fc5ec6a4495829f7c/R/methods-VCF-class.R#L336

hpages commented 4 years ago

@lawremi Michael?