保留 row.names 的同时对矩阵进行子集化

son*_*089 2 performance r matrix

我正在尝试对矩阵进行子集化,以便仅获得第一个变量大于第二个变量的矩阵。我有一个矩阵out,它是一个3000x2矩阵。

我试过

out<-out[out[,1] > out[,2]]
Run Code Online (Sandbox Code Playgroud)

但这完全消除了 row.names,并且我得到了一串 1 到 3000 之间的整数。有没有办法保留row.names

Jac*_*sey 5

值得注意的是,如果您只返回一行的子集来形成一个一维为单位的矩阵,R 将删除行名称: m <- matrix(1:9, ncol = 3) rownames(m) <- c("a", "b", "c") m[1, ] # lost the row name m[1, , drop = FALSE] # got row name back and a matrix m[c(1,1), ] # the row name is back when result has nrow > 1 除了检查单行结果并分配之外,似乎没有简单的方法可以解决此问题行名称。