簡體   English   中英

1 xm矩陣的尺寸?

[英]Dimension of a 1 x m Matrix?

R幾乎每天都一次又一次地讓我感到驚訝:

m <- matrix( 1:6, ncol=2 )
while( dim(m)[1] > 0 ){
  print(m);
  m <- m[-1,]
}

得到:

     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
     [,1] [,2]
[1,]    2    5
[2,]    3    6
Error in while (dim(m)[1] > 0) { : argument is of length zero

R有1xn矩陣的問題或我的錯誤在哪里?

> nrow( m[-c(2,3), ] )
NULL
> dim( m[-c(2,3), ] )
NULL
> m[-c(2,3), ][,1]
Error in m[-c(2, 3), ][, 1] : incorrect number of dimensions
> str( m[-c(2,3), ] )
int [1:2] 1 4

知道如何輕松修復最初的例子,這接近我的實際問題嗎? BTW:這個循環是我的算法的瓶頸。 因此,贊賞有效的解決方案。

非常感謝!

[ subsetting]的默認行為是轉換為更簡單的結構(如果適用)。 換句話說,一旦您將1xn矩陣子集化,該對象就會轉換為向量。

要更改此行為,請使用drop=FALSE參數[

m <- matrix( 1:6, ncol=2 )
while( dim(m)[1] > 0 ){
  print(m);
  m <- m[-1, , drop=FALSE]
}

     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
     [,1] [,2]
[1,]    2    5
[2,]    3    6
     [,1] [,2]
[1,]    3    6

有關更多信息,請參閱?"["

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM