如何在 R 的 data.table 物件中按行最大值對行值進行除法運算?


若要在 R 的 data.table 物件中按行最大值對行值進行除法運算,我們可以按以下步驟操作:-

  • 首先,建立一個 data.table 物件。
  • 然後,使用 apply 函式按行最大值對 data.table 物件行值進行除法運算。

建立資料框

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

library(data.table)
x<-rpois(25,5)
y<-rpois(25,10)
DT<-data.table(x,y)
DT

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

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

按行最大值對 data.table 物件行值進行除法運算

使用 apply 函式按行最大值對 DT 的行值進行除法運算:-

library(data.table)
x<-rpois(25,5)
y<-rpois(25,10)
DT<-data.table(x,y)
DT_new<-t(apply(DT,1, function(x) x/max(x)))
DT_new

輸出

         x          y
[1,] 1.00000000 1.0000000
[2,] 0.57142857 1.0000000
[3,] 0.30000000 1.0000000
[4,] 0.62500000 1.0000000
[5,] 1.00000000 0.8571429
[6,] 0.38461538 1.0000000
[7,] 0.60000000 1.0000000
[8,] 0.00000000 1.0000000
[9,] 0.11111111 1.0000000
[10,] 0.71428571 1.0000000
[11,] 0.78571429 1.0000000
[12,] 0.50000000 1.0000000
[13,] 0.50000000 1.0000000
[14,] 0.11111111 1.0000000
[15,] 0.53846154 1.0000000
[16,] 0.16666667 1.0000000
[17,] 1.00000000 1.0000000
[18,] 0.62500000 1.0000000
[19,] 0.08333333 1.0000000
[20,] 0.28571429 1.0000000
[21,] 0.29411765 1.0000000
[22,] 0.85714286 1.0000000
[23,] 0.27272727 1.0000000
[24,] 0.41666667 1.0000000
[25,] 0.41666667 1.0000000

更新於:2021-08-14

87 次瀏覽

提升您的 事業

完成課程並獲得認證

立即開始
廣告