diff --git a/R/InfinitySparseMatrix.R b/R/InfinitySparseMatrix.R index e6c674ca..fa7e498b 100644 --- a/R/InfinitySparseMatrix.R +++ b/R/InfinitySparseMatrix.R @@ -1120,6 +1120,12 @@ as.list.DenseMatrix <- function(x, ...) { subset.BlockedInfinitySparseMatrix <- function(x, subset, select, ...) { subIsm <- callGeneric(as(x, "InfinitySparseMatrix"), subset, select) oldNames <- names(x@groups) + if (!all(union(x@rownames, x@colnames) %in% oldNames)) { + warning(paste("Subsetting BlockedInfinitySparseMatrix with", + "rownames union colnames not set equal to", + "group names results in an InfinitySparseMatrix.")) + return(subIsm) + } if (!is.null(oldNames)) { # we can use the groups names to subset groups subNames <- oldNames[which((oldNames %in% subIsm@rownames) | (oldNames %in% subIsm@colnames))]