如何在 R 中的 data.table 物件中查詢具有相同名稱的列的行均值?


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

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

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

示例

建立 data.table

讓我們建立一個如下所示的 data.table:

library(data.table)
DT<-
data.table(x=rpois(25,2),y=rpois(25,1),x=rpois(25,10),y=rpois(25,5),check.names=FALSE)
DT

輸出

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

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

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

使用 tapply 結合 colnames 和 mean 函式來查詢 data.table DT 中具有相同名稱的列的行均值:

library(data.table)
DT<-
data.table(x=rpois(25,2),y=rpois(25,1),x=rpois(25,10),y=rpois(25,5),check.names=FALSE)
t(apply(DT,1, function(x) tapply(x,colnames(DT),mean)))

輸出

        x   y
[1,]   7.5 2.0
[2,]   3.5 2.5
[3,]   5.0 2.0
[4,]   4.5 2.0
[5,]   5.0 2.0
[6,]   6.0 2.5
[7,]   5.5 3.5
[8,]   4.5 1.5
[9,]   4.0 2.5
[10,]  7.0 2.0
[11,]  5.0 3.5
[12,]  5.5 2.0
[13,]  4.5 2.0
[14,]  7.0 2.0
[15,]  3.5 4.0
[16,]  6.0 3.0
[17,]  2.0 3.5
[18,]  5.0 2.0
[19,]  5.5 4.0
[20,]  5.0 2.5
[21,]  6.0 3.5
[22,]  4.5 4.5
[23,]  7.0 3.5
[24,]  7.5 0.5
[25,] 11.0 4.5

更新於: 2021-11-15

227 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.