如何在 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 次浏览

提升您的 事业

完成课程并获得认证

立即开始
广告
© . All rights reserved.