如何将矩阵子集化为一列,维护矩阵数据类型,维护行/列名称?

SFu*_*n28 71 r matrix subset r-faq

当我将矩阵子集化为单个列时,结果是类数字,而不是矩阵(即myMatrix [,5]到第五列的子集).是否有一种紧凑的方法可以将单个列子集化,维护矩阵格式,并维护行/列名称,而无需执行以下操作:

matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )
Run Code Online (Sandbox Code Playgroud)

Jos*_*ich 104

使用drop=FALSE参数来[.

m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1]             # vector
m[,1,drop=FALSE]  # matrix
Run Code Online (Sandbox Code Playgroud)

  • 如果只想按第一维索引,可以使用drop,如下所示:`m [1,,drop = FALSE]` (3认同)