如何在R矩陣中查詢具有相同名稱的列的行方差?


要查詢R矩陣中具有相同名稱的列的行方差,我們可以按照以下步驟操作:

  • 首先,建立一個包含一些具有相同名稱的列的矩陣。

  • 然後,使用tapply結合colnames和var函式來查詢具有相同名稱的列的行方差。

示例

建立矩陣

讓我們建立一個如下所示的矩陣:

M<-matrix(rpois(100,2),ncol=4)
colnames(M)<-c("x1","x1","x2","x2")
M

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出將在您的系統上有所不同):

     x1 x1 x2 x2
[1,]  1  3 4  0
[2,]  1  0 2  4
[3,]  3  2 2  2
[4,]  2  1 1  0
[5,]  2  3 1  2
[6,]  0  1 3  2
[7,]  2  3 3  0
[8,]  5  2 3  1
[9,]  1  3 1  0
[10,] 1  0 2  2
[11,] 2  2 1  0
[12,] 4  2 0  0
[13,] 2  4 2  3
[14,] 0  2 2  1
[15,] 2  4 1  2
[16,] 2  1 1  2
[17,] 2  1 1  3
[18,] 0  0 1  3
[19,] 4  1 3  3
[20,] 1  3 2  0
[21,] 2  1 4  2
[22,] 1  3 3  2
[23,] 2  0 0  1
[24,] 2  1 2  1
[25,] 3  1 2  1

查詢具有相同名稱的列的行方差

使用tapply結合colnames和var函式來查詢矩陣M中具有相同名稱的列的行方差:

M<-matrix(rpois(100,2),ncol=4)
colnames(M)<-c("x1","x1","x2","x2")
t(apply(M,1, function(x) tapply(x,colnames(M),var)))

輸出

      x1   x2
[1,]  2.0 8.0
[2,]  0.5 2.0
[3,]  0.5 0.0
[4,]  0.5 0.5
[5,]  0.5 0.5
[6,]  0.5 0.5
[7,]  0.5 4.5
[8,]  4.5 2.0
[9,]  2.0 0.5
[10,] 0.5 0.0
[11,] 0.0 0.5
[12,] 2.0 0.0
[13,] 2.0 0.5
[14,] 2.0 0.5
[15,] 2.0 0.5
[16,] 0.5 0.5
[17,] 0.5 2.0
[18,] 0.0 2.0
[19,] 4.5 0.0
[20,] 2.0 2.0
[21,] 0.5 2.0
[22,] 2.0 0.5
[23,] 2.0 0.5
[24,] 0.5 0.5
[25,] 2.0 0.5

更新於:2021年11月9日

87 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.