矩陣(matrix)是r語言中很基礎的一種資料結構,也是r語言使用者經常使用的一種資料結構。矩陣的維度一般為二維(m*n)。
r語言中矩陣的操作是非常簡單易懂的,但是在對r語言做矩陣操作時,有個地方需要特別注意。下面我們通過乙個例子說明。
首先,我們建立乙個用於測試的矩陣。
test1 <- matrix(data = c(1:6), nrow = 3, ncol = 2, dimnames = list(c("row1", "row2", "row3"), c("col1", "col2")))
然後我們檢視下這個矩陣,矩陣是乙個三行兩列的矩陣。
> test1col1 col2
row1 1 4
row2 2 5
row3 3 6
然後,我們任意取出它們的子矩陣並使用dim()函式檢視子矩陣的維度。
> dim(test1[1:2, ]); test1[1:2, ][1] 2 2
col1 col2
row1 1 4
row2 2 5
> dim(test1[2, ]); test1[2, ]
null
col1 col2
2 5
我們發現第一次取出某個維度為2*2的子矩陣時,系統正確返回了子矩陣的維度,而當我們第二次取出乙個維度為1*2的子矩陣時,系統卻未能正確返回子矩陣的維度且維度為null。很顯然,r語言將這個子矩陣當成向量處理了,因此維度也「消失」了。這個是非常需要注意的,筆者日常使用r語言分析資料的時候,也不經意間落入過這個「圈套」,有時候感覺**邏輯上沒有任何的錯誤,但當執行程式的時候,就會出現這個某個令人不解的error,然後需要花上一點時間慢慢debug,然後恍然大悟,原來是這個原因。
解決或者說避免出現這個問題也是非常簡單的,我們可以直接使用drop引數。
> # using the drop parameter> dim(test1[2, , drop = false])
[1] 1 2
我們可以看到,將drop引數設為false之後,r語言能夠正確返回矩陣的維度了。
R語言 矩陣的基礎運算
先建立乙個2 5的矩陣a x c 1 10 a matrix x,ncol 2,nrow 5,byrow t a 1 2 1,1 2 2,3 4 3,5 6 4,7 8 5,9 10再建立乙個矩陣b x c 1 10 b matrix x,ncol 2,nrow 5 b 1 2 1,1 6 2,2 ...
R語言 矩陣的基礎用法
矩陣 1.定義矩陣 m matrix c 1 10 nrow 2,ncol 5 這裡的第乙個nrow為行,ncol為列數。但是陣列的數量必須與矩陣的第乙個引數的數目相同,同時行數和列數只要列出乙個就可以 m matrix c 1 10 nrow 2 m matrix c 1 10 ncol 5 這裡...
R語言 matrix生成矩陣
主要介紹一下利用matrix函式和rep生成矩陣 在r語言中可以使用matrix 函式來建立矩陣,其語法格式如下 matrix data na,nrow 1,ncol 1,byrow false,dimnames null 引數含義如下 data 矩陣的元素,預設為na,即未給出元素值的話,各項為n...