如何按行最小值划分 R 中的 data.table 对象行?
要将行值除以Rdata.table对象中的行最小值,我们可以按照以下步骤操作-
首先,创建一个data.table对象。
然后,使用apply函数将data.table对象行值除以行最小值。
创建data.table对象
让我们创建一个data.table对象,如下所示-
例子
> library(data.table) > x<-sample(1:5,25,replace=TRUE) > y<-sample(1:5,25,replace=TRUE) > z<-sample(1:5,25,replace=TRUE) > DT<-data.table(x,y,z) > DT
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
输出
x y z 1: 4 1 3 2: 4 3 1 3: 1 3 5 4: 1 5 5 5: 3 3 1 6: 3 3 5 7: 3 1 4 8: 4 2 4 9: 1 2 5 10: 5 1 3 11: 5 2 5 12: 3 5 2 13: 5 5 2 14: 3 1 1 15: 5 4 5 16: 2 1 3 17: 1 3 3 18: 2 4 3 19: 4 1 4 20: 1 1 4 21: 1 2 1 22: 1 1 5 23: 3 5 3 24: 1 1 3 25: 2 1 2 x y z
将data.table对象行值除以行最小值
例子
使用应用函数将DT的行值除以行最小值-
> library(data.table) > x<-sample(1:5,25,replace=TRUE) > y<-sample(1:5,25,replace=TRUE) > z<-sample(1:5,25,replace=TRUE) > DT<-data.table(x,y,z) > DT_new<-t(apply(DT,1, function(x) x/min(x))) > DT_new
输出
x y z [1,] 4.00 1.000000 3.000000 [2,] 4.00 3.000000 1.000000 [3,] 1.00 3.000000 5.000000 [4,] 1.00 5.000000 5.000000 [5,] 3.00 3.000000 1.000000 [6,] 1.00 1.000000 1.666667 [7,] 3.00 1.000000 4.000000 [8,] 2.00 1.000000 2.000000 [9,] 1.00 2.000000 5.000000 [10,] 5.00 1.000000 3.000000 [11,] 2.50 1.000000 2.500000 [12,] 1.50 2.500000 1.000000 [13,] 2.50 2.500000 1.000000 [14,] 3.00 1.000000 1.000000 [15,] 1.25 1.000000 1.250000 [16,] 2.00 1.000000 3.000000 [17,] 1.00 3.000000 3.000000 [18,] 1.00 2.000000 1.500000 [19,] 4.00 1.000000 4.000000 [20,] 1.00 1.000000 4.000000 [21,] 1.00 2.000000 1.000000 [22,] 1.00 1.000000 5.000000 [23,] 1.00 1.666667 1.000000 [24,] 1.00 1.000000 3.000000 [25,] 2.00 1.000000 2.000000