删除矩阵行,其中rownames()与R为NA

时间:2014-05-12 15:43:14

标签: r

我的矩阵看起来像这样:

     [,1]
A    "2012" 
B    "2013"
C    "2012"
D    "2013"
NA1  "2012" 
NA2  "2013"
NA3  "2013"
NA4  "2014"

如何删除名称为NA1, NA2 ....?

的最后几行

所以最终的结果是这样的:

        [,1]
  A    "2012" 
  B    "2013"
  C    "2012"
  D    "2013"
编辑:我试过这种方式......

ifelse(nchar(rownames(Matrx))<2,Matrx,!(nchar(rownames(Matrx))>2))

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式并grepl删除它们。

> M <- matrix(c("2012","2013","2012","2013","2012","2013","2013","2014"))
> rownames(M) <- c('A', 'B', 'C', 'D', 'NA1', 'NA2', 'NA3', 'NA4')
> M
##     [,1]  
## A   "2012"
## B   "2013"
## C   "2012"
## D   "2013"
## NA1 "2012"
## NA2 "2013"
## NA3 "2013"
## NA4 "2014"

> as.matrix(M[!grepl('NA', rownames(M)), ])
##   [,1]  
## A "2012"
## B "2013"
## C "2012"
## D "2013"
相关问题