3

可能重复:
R 和 1 行矩阵

我有数百个矩阵,在一个 for 循环中,我正在对它们进行一些更改,包括对它们进行排序。问题在于只有一行的矩阵。因此,当我订购它们时,它们的类将从矩阵变为字符,如下所示:

> test1
 Gene ID  Gene Name Score(d) Fold Change q-value(%)
[1,] "g17035" "17035"   "-29.1"  "0.877"     "303.826" 
> class(test1)
[1] "matrix"

并且在应用命令时它变成字符类:

test1 <- test1[order(test1[, 5]), ]

> test1
Gene ID   Gene Name    Score(d) Fold Change  q-value(%) 
"g17035"     "17035"     "-29.1"     "0.877"   "303.826" 
> class(test1)
[1] "character"

我什至使用了 as.matrix 但它以不需要的顺序更改了矩阵:

test1 <-as.matrix(test1[order(test1[, 5]), ])

然后它会是这样的:

> test1
    [,1]     
Gene ID     "g17035" 
Gene Name   "17035"  
Score(d)    "-29.1"  
Fold Change "0.877"  
q-value(%)  "303.826"

我该如何解决?先感谢您

4

1 回答 1

4

您正在寻找的是不减少子集的维度,并且这样做的方法是drop使用[. 更多信息可在?"[".

# Demo matrix
> a <- matrix(1:9, 3, 3)
> a
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

# With reduction
> a[1,]
[1] 1 4 7
> class(a[1,])
[1] "integer"

# Without reduction
> a[1,,drop=FALSE]
     [,1] [,2] [,3]
[1,]    1    4    7
> class(a[1,,drop=FALSE])
[1] "matrix"
于 2012-12-07T09:29:54.063 回答