2013-05-05 216 views
6

從矩陣形式獲取矩陣行的最短途徑是什麼?以矩陣形式獲得矩陣行

> x<-matrix(1:9,nrow=3,byrow=TRUE) 
> x 
    [,1] [,2] [,3] 
[1,] 1 2 3 
[2,] 4 5 6 
[3,] 7 8 9 
> x[1,] 
[1] 1 2 3 
> is.vector(x[1,]) 
[1] TRUE 

,我想獲得

 [,1] [,2] [,3] 
[1,] 1 2 3 
+1

來吧Giraphant 。給複選標記。真的沒有其他答案。 – 2013-05-06 05:10:54

回答

17

[需要drop參數控制所提取的子集是否會被強制(如果可能)到較低維的對象(在這種情況下是一個普通的向量)。爲了確保矩陣的一個子集,將永遠是一個矩陣,將其設置drop=FALSE,像這樣:

x[1,,drop=FALSE] 
    [,1] [,2] [,3] 
[1,] 1 2 3 

(。而對於一整套子集的規則和參數,儘量help("[")

+0

這更好,爲什麼我總是忘記'[]'的參數? – alexwhan 2013-05-05 23:57:30

+0

非常感謝:)這一個更好,因爲它會在兩種情況下表現相同的方式。第一種情況是當我們有矩陣A(3x3),並且我們想要選擇多於一行A [1:2,] - 結果是矩陣,所以不需要動作A [1,] - 是矢量,所以我們需要轉換爲矩陣(as.matrix)和轉置。 – LukaszJ 2013-05-06 14:21:15

1
t(as.matrix(x[1,])) 

應該做的伎倆......