如何为 R 中的一组列随机化 data.table 对象的列值?

要data.table为 R 中的一组列随机化对象的列值,我们可以按照以下步骤操作 -

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

  • 然后,在选择带有 SDcols 的列时,使用 lapply 进行随机化的样本函数。

创建数据框

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

例子

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

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

输出

  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

以上是 如何为 R 中的一组列随机化 data.table 对象的列值? 的全部内容, 来源链接: utcz.com/z/345805.html

回到顶部