要将行值除以 Rdata.table对象中的行平均值,我们可以按照以下步骤操作 -
首先,创建一个data.table对象。
然后,使用 apply 函数将data.table对象行值除以行平均值。
library(data.table) x<-sample(1:50,25) y<-sample(1:50,25) z<-sample(1:50,25) DT<-data.table(x,y,z) DT
执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-
x y z 1: 26 34 16 2: 2 23 40 3: 23 9 37 4: 24 14 22 5: 4 20 33 6: 35 38 47 7: 21 3 10 8: 34 41 13 9: 42 33 35 10: 15 7 4 11: 18 1 23 12: 45 4 49 13: 11 8 19 14: 50 49 5 15: 13 39 9 16: 12 21 46 17: 20 29 42 18: 28 32 38 19: 25 47 32 20: 32 22 20 21: 46 45 43 22: 6 15 31 23: 22 48 29 24: 30 5 17 25: 27 46 44 x y z
使用应用函数将 DT 的行值除以行平均值 -
library(data.table) x<-sample(1:50,25) y<-sample(1:50,25) z<-sample(1:50,25) DT<-data.table(x,y,z) DT_new<-t(apply(DT,1, function(x) x/mean(x))) DT_new
x y z [1,] 1.02631579 1.34210526 0.6315789 [2,] 0.09230769 1.06153846 1.8461538 [3,] 1.00000000 0.39130435 1.6086957 [4,] 1.20000000 0.70000000 1.1000000 [5,] 0.21052632 1.05263158 1.7368421 [6,] 0.87500000 0.95000000 1.1750000 [7,] 1.85294118 0.26470588 0.8823529 [8,] 1.15909091 1.39772727 0.4431818 [9,] 1.14545455 0.90000000 0.9545455 [10,] 1.73076923 0.80769231 0.4615385 [11,] 1.28571429 0.07142857 1.6428571 [12,] 1.37755102 0.12244898 1.5000000 [13,] 0.86842105 0.63157895 1.5000000 [14,] 1.44230769 1.41346154 0.1442308 [15,] 0.63934426 1.91803279 0.4426230 [16,] 0.45569620 0.79746835 1.7468354 [17,] 0.65934066 0.95604396 1.3846154 [18,] 0.85714286 0.97959184 1.1632653 [19,] 0.72115385 1.35576923 0.9230769 [20,] 1.29729730 0.89189189 0.8108108 [21,] 1.02985075 1.00746269 0.9626866 [22,] 0.34615385 0.86538462 1.7884615 [23,] 0.66666667 1.45454545 0.8787879 [24,] 1.73076923 0.28846154 0.9807692 [25,] 0.69230769 1.17948718 1.1282051