我有使用R的任務,並有一點問題。在賦值時,必須用隨機數的行生成幾個矩陣,然後用於各種計算。一切都運行完美,除非行數爲1nrow(矩陣)函數
在我用不同的方式nrow(矩陣)的計算,例如if (i <= nrow(matrix)) {action}
也像matrix[,4]
等語句。因此,如果行數爲1(我知道它實際上是矢量),R給出錯誤,肯定是因爲nrow(1維矩陣)= NULL。有沒有簡單的方法來處理這個問題?否則,很可能整個代碼已經被改寫,但我的時間很短:(
我有使用R的任務,並有一點問題。在賦值時,必須用隨機數的行生成幾個矩陣,然後用於各種計算。一切都運行完美,除非行數爲1nrow(矩陣)函數
在我用不同的方式nrow(矩陣)的計算,例如if (i <= nrow(matrix)) {action}
也像matrix[,4]
等語句。因此,如果行數爲1(我知道它實際上是矢量),R給出錯誤,肯定是因爲nrow(1維矩陣)= NULL。有沒有簡單的方法來處理這個問題?否則,很可能整個代碼已經被改寫,但我的時間很短:(
讓我們把你的矢量x
。嘗試使用matrix(x)
或t(matrix(x))
將其轉換成一個適當的(2D)矩陣。
它是不是R中的單行/列矩陣有ncol
/nrow
設爲NULL
- 在R中,一切都是一維向量,它可以表現爲矩陣(即顯示爲矩陣,接受矩陣索引等) dim
屬性集,看起來不然,因爲簡單地將矩陣索引到單個行或列下降dim
並使數據保留在其默認(一維矢量)狀態。通過防止[]
運營商掉落dim
加入drop=FALSE
參數
dim(x)<-c(length(x),1)
x #Now a single column matrix
dim(x)<-c(1,length(x))
x #Now a single row matrix
OR:
因此,你可以通過直接再造一個載體dim
屬性(比如它被稱爲X)實現自己的目標
x<-matrix(1:12,3,4)
x #OK, matrix
x[,3] #Boo, vector
x[,3,drop=FALSE] #Matrixicity saved!
謝謝,你救了我 - 它工作! – Michinio