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


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

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

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

示例

建立矩陣

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

M<-matrix(rpois(100,5),ncol=4)
colnames(M)<-c("A","B","B","A")
M

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出將因您的系統而異):

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

查詢具有相同名稱的列的行均值

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

M<-matrix(rpois(100,5),ncol=4)
colnames(M)<-c("A","B","B","A")
t(apply(M,1, function(x) tapply(x,colnames(M),mean)))

輸出

       A   B
[1,]  4.5 6.0
[2,]  6.0 3.0
[3,]  4.0 4.5
[4,]  6.5 3.5
[5,]  4.5 6.5
[6,]  5.0 5.0
[7,]  4.5 5.0
[8,]  5.0 3.0
[9,]  7.0 6.0
[10,] 3.0 6.0
[11,] 2.0 6.5
[12,] 4.0 7.0
[13,] 6.5 3.5
[14,] 4.5 3.0
[15,] 7.5 2.5
[16,] 8.0 8.0
[17,] 4.0 5.0
[18,] 9.0 8.5
[19,] 4.0 3.5
[20,] 4.0 3.0
[21,] 6.0 3.5
[22,] 6.5 4.0
[23,] 4.0 3.5
[24,] 2.5 3.0
[25,] 2.0 3.5

更新於:2021年11月15日

419 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告