如何在 R 中的資料表物件中按行方差來劃分行值?
要在 R 的資料表物件中按行方差劃分行值,我們可以按照以下步驟進行 −
- 首先,建立 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: 2 2 1 2: 3 4 3 3: 2 5 3 4: 2 4 3 5: 3 5 1 6: 2 4 4 7: 2 2 2 8: 5 2 3 9: 3 3 3 10: 4 3 4 11: 5 5 2 12: 3 4 1 13: 2 3 2 14: 2 5 2 15: 3 5 3 16: 5 3 2 17: 4 1 3 18: 1 5 3 19: 2 1 1 20: 1 5 3 21: 4 3 4 22: 3 1 5 23: 4 3 5 24: 1 1 4 25: 2 3 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/var(x))) DT_new
輸出
x y z [1,] 6.0000000 6.0000000 3.0000000 [2,] 9.0000000 12.0000000 9.0000000 [3,] 0.8571429 2.1428571 1.2857143 [4,] 2.0000000 4.0000000 3.0000000 [5,] 0.7500000 1.2500000 0.2500000 [6,] 1.5000000 3.0000000 3.0000000 [7,] Inf Inf Inf [8,] 2.1428571 0.8571429 1.2857143 [9,] Inf Inf Inf [10,] 12.0000000 9.0000000 12.0000000 [11,] 1.6666667 1.6666667 0.6666667 [12,] 1.2857143 1.7142857 0.4285714 [13,] 6.0000000 9.0000000 6.0000000 [14,] 0.6666667 1.6666667 0.6666667 [15,] 2.2500000 3.7500000 2.2500000 [16,] 2.1428571 1.2857143 0.8571429 [17,] 1.7142857 0.4285714 1.2857143 [18,] 0.2500000 1.2500000 0.7500000 [19,] 6.0000000 3.0000000 3.0000000 [20,] 0.2500000 1.2500000 0.7500000 [21,] 12.0000000 9.0000000 12.0000000 [22,] 0.7500000 0.2500000 1.2500000 [23,] 4.0000000 3.0000000 5.0000000 [24,] 0.3333333 0.3333333 1.3333333 [25,] 6.0000000 9.0000000 6.0000000
廣告
資料結構
網路
資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP