如何在R資料框中查詢具有相同名稱的列的行中位數?


為了找到R資料框中具有相同名稱的列的行中位數,我們可以遵循以下步驟:

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

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

示例

建立資料框

讓我們建立一個如下所示的資料框:

df<-
data.frame(x=rpois(25,1),x=rpois(25,10),x=rpois(25,5),y=rpois(25,3),y=rpois(25,5),y=rp ois(25,5),check.names=FALSE)
df

輸出

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

   x  x x y y y
1  0 10 5 5 3 4
2  0  9 3 3 3 2
3  2  6 2 2 6 1
4  0 19 3 2 5 5
5  4 11 7 4 7 5
6  0 11 3 7 4 4
7  1  4 4 8 7 5
8  0  7 4 4 4 6
9  0 15 2 4 2 6
10 0  4 4 3 6 4
11 1 16 8 1 4 4
12 2 11 5 1 5 1
13 1 18 2 2 6 3
14 1 11 3 4 5 4
15 0 11 5 6 2 6
16 1  7 3 1 2 4
17 1 11 4 4 5 5
18 0  8 3 1 5 2
19 0  9 6 3 5 5
20 1  7 5 1 4 3
21 2 14 7 5 3 6
22 2 11 6 4 7 9
23 1 16 5 4 5 3
24 0  5 4 4 2 4
25 1  9 4 6 2 3

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

使用tapply以及colnames和median函式來查詢資料框df中具有相同名稱的列的行中位數:

df<-
data.frame(x=rpois(25,1),x=rpois(25,10),x=rpois(25,5),y=rpois(25,3),y=rpois(25,5),y=rp ois(25,5),check.names=FALSE)
t(apply(df,1, function(x) tapply(x,colnames(df),median)))

輸出

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

更新於:2021年11月9日

222 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告