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


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

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

  • 然後,使用 tapply 結合 colnames 和 median 函式來查詢具有相同名稱的列的行中位數。

示例

建立矩陣

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

M<-matrix(rpois(150,10),ncol=6)
colnames(M)<-c("C1","C1","C2","C2","C1","C2")
M

輸出

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

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

查詢具有相同名稱的列的行中位數

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

M<-matrix(rpois(150,10),ncol=6)
colnames(M)<-c("C1","C1","C2","C2","C1","C2")
t(apply(M,1, function(x) tapply(x,colnames(M),median)))

輸出

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

更新時間: 2021年11月12日

126 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告