如何在R中隨機化data.table物件中一組列的列值?
為了在R中隨機化data.table物件中一組列的列值,我們可以按照以下步驟操作:
- 首先,建立一個data.table物件。
- 然後,使用sample函式結合lapply進行隨機化,同時使用SDcols選擇列。
建立資料框
讓我們建立一個如下所示的資料框:
示例
library(data.table) ID<-1:20 x<-rpois(20,5) y<-rpois(20,10) z<-rpois(20,8) DT<-data.table(ID,x,y,z) DT
執行上述指令碼後,會生成以下輸出(由於隨機化的原因,此輸出在您的系統上可能會有所不同):
輸出
ID x y z 1: 1 6 9 8 2: 2 4 11 7 3: 3 2 11 10 4: 4 2 9 14 5: 5 9 8 7 6: 6 1 12 9 7: 7 8 9 8 8: 8 5 6 5 9: 9 6 14 4 10: 10 5 7 3 11: 11 3 11 13 12: 12 8 13 7 13: 13 5 14 10 14: 14 5 12 6 15: 15 5 4 10 16: 16 7 10 7 17: 17 7 12 3 18: 18 5 6 9 19: 19 4 14 8 20: 20 3 9 6
隨機化data.table物件中選定列的列值
使用lapply和sample函式隨機化DT中第2、3和4列的列值:
示例
library(data.table) ID<-1:20 x<-rpois(20,5) y<-rpois(20,10) z<-rpois(20,8) DT<-data.table(ID,x,y,z) DT[,(2:4):=lapply(.SD,sample),.SDcols=2:4] DT
輸出
ID x y z 1: 1 4 11 7 2: 2 2 9 7 3: 3 5 6 14 4: 4 3 9 3 5: 5 8 11 6 6: 6 7 14 10 7: 7 1 7 13 8: 8 5 9 10 9: 9 5 14 4 10: 10 2 12 7 11: 11 5 9 8 12: 12 8 12 7 13: 13 3 8 10 14: 14 5 6 8 15: 15 9 4 5 16: 16 6 14 9 17: 17 5 10 6 18: 18 7 12 3 19: 19 6 11 9 20: 20 4 13 8
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP