从 R 中 class "dgCMatrix" 的稀疏矩阵中删除行

Removing rows from a sparse matrix of class "dgCMatrix" in R

我是一名生物信息学专业的学生,​​对 R 还很陌生。我正在使用 class“dgCMatrix”的稀疏矩阵,我想找到一种方法来有条件地删除该矩阵中的行。 Click here to see size and appearance of my sparse matrix called sobj.data

我想做的是迭代稀疏矩阵并删除行名称以“LOC107”开头的任何行,例如上图中的第九行和第十一行。我了解如何设置 for 循环来进行迭代,但我不知道如何删除行本身。

This is what I've got so far:

有人知道如何使用我编写的这个 for 循环删除 R 中的行(即填写 if 语句)吗?

好吧,这里有一种在基 R 中使用非稀疏矩阵的方法,也许 dgCmatrix class 有类似的方法:假设矩阵被命名为 X。

keep_rows <- Negate(grepl(rownames(X), pattern="^LOC107"))
Xnew <- X[keep_rows,]

注意:一般来说,如果在这个过程之后可能只剩下一行,你会使用 Xnew <- X[keep_rows,drop=FALSE] 来避免简化。