如何随机化 R 中所有列的 data.table 对象的列值?

要随机化data.tableR 中所有列的对象的列值,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table对象。

  • 然后,使用带有 lapply 的示例函数来随机化 data.table 对象的列。

创建数据框

让我们创建一个数据框,如下所示 -

library(data.table)
x<-rpois(20,5)
y<-rpois(20,10)
z<-rpois(20,8)
DT<-data.table(x,y,z)
DT

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

   x y z
1: 6 7 7
2: 7 11 7
3: 7 16 6
4: 7 8 11
5: 7 12 7
6: 8 10 2
7: 7 9 4
8: 4 12 6
9: 5 13 9
10: 7 8 7
11: 8 10 7
12: 2 12 8
13: 3 6 4
14: 7 9 9
15: 2 9 9
16: 6 17 10
17: 6 3 8
18: 7 14 4
19: 6 10 8
20: 7 15 8

随机化data.table对象中的列值

使用 lapply 和 sample 函数随机化 DT 的列值 -

library(data.table)
x<-rpois(20,5)
y<-rpois(20,10)
z<-rpois(20,8)
DT<-data.table(x,y,z)
DT[,lapply(.SD,sample)]

输出

   x y z
1: 7 9 9
2: 8 13 6
3: 7 10 9
4: 7 15 4
5: 7 14 11
6: 7 10 7
7: 5 8 2
8: 4 12 7
9: 8 12 8
10: 6 6 7
11: 6 10 7
12: 6 7 7
13: 2 12 4
14: 7 11 6
15: 2 16 10
16: 7 8 8
17: 3 3 8
18: 7 9 9
19: 6 9 4
20: 7 17 8

猜你喜欢