如何按行最大值划分 R 中的 data.table 对象行?

要将行值除以 Rdata.table对象中的行最大值,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table对象。

  • 然后,使用 apply 函数将data.table对象行值除以行最大值。

创建数据框

让我们创建一个数据框,如下所示 -

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

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

    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对象行值除以行最大值

使用应用函数将 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

猜你喜欢