如何在 R 中按行最小值拆分 data.table 物件行?
要在 R 的 data.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
執行上述指令碼後,將生成以下輸出(此輸出將在不同的系統中因隨機而異):
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 物件行值
使用 apply 函式按行最小值拆分 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP