3

重複の可能性:
R と 1 行の行列

私は何百もの行列を持っており、for ループでそれらの順序付けを含め、いくつかの変更を行っています。問題は、行が 1 つしかない行列にあります。したがって、それらを注文すると、クラスは以下のようにマトリックスから文字に変更されます。

> 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[注文(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 に答える