[英]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.