在我研究生一年級的時候,我用r語言分析轉錄組時遇到了乙個問題,如何對樣本按照文庫進行標準化,假設我手頭的資料如下
mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3)
mdat
[,1] [,2] [,3]
[1,] 1 3 12
[2,] 2 11 13
我當時用了乙個錯誤的方法
depth <- colsums(mdat)
mdat / depth
雖然這個時候執行沒有出錯,但其實結果存在問題。因為r語言的自動補全和r語言按列操作的特性,實際上我得到的是
1 / 2 3 / 25 12 /14
2 /14 11 / 2 13 /25
當時我的解決方法是,對資料進行轉置
t(t(mdat ) / colsums(mdat))
今天我在閱讀scale
的函式說明和源**時發現了乙個新的函式sweep
, 能夠按行按列呼叫函式以提供的值處理原始的資料
sweep(mdat, 2, depth, "/")
通過我對源**的檢查,發現sweep
本質上還是呼叫了轉置函式aperm
,針對於陣列轉置,而t()
是針對於矩陣轉置。因此使用sweep
不會有速度上的提公升,只是**更加簡潔了。 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 這裡...
對極幾何 本質矩陣E和基礎矩陣F
如上圖所示,給定乙個目標點p,以左攝像頭光心ol為原點。點p相對於光心ol的觀察位置為pl,相對於光心or的觀察位置為pr。點p在左攝像頭成像平面上的位置為pl,在右攝像頭成像平面上的位置為pr。注意pl pr pl pr都處於攝像機座標系,其量綱是與平移向量t相同的 pl pr在影象座標系中對應的...