R - data.table样本复制

时间:2016-10-05 09:39:39

标签: r data.table

我正在尝试从我的样本中创建几个随机子样本。

所以,我想的是像

这样的东西
library(data.table)
replicate(2, mtcars[, .SD[sample(.N,3)], ], simplify=F  ) 

这给了我两个清单

[[1]]
    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
1: 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
2: 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
3: 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3

[[2]]
    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
1: 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
2: 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
3: 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1

我想知道bind是否可以使用标识符采样,因此以复制次数为条件

    mpg cyl  disp  hp drat    wt  qsec vs am gear carb replication 
1: 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1  1
2: 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1  1
3: 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3  1
4: 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2  2
5: 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1  2
6: 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1  2

这样的东西
library(dplyr) 
replicate(2, mtcars[, .SD[sample(.N,3)], ], simplify=F  ) %>% bind_rows() 

但表示复制次数(当然要避免loops

谢谢

1 个答案:

答案 0 :(得分:2)

.id

中有bind_rows选项
replicate(2, as.data.table(mtcars)[sample(.N,3)], simplify=FALSE  ) %>% 
                                bind_rows(., .id = 'replication')