R数据表以概率选择

时间:2017-05-05 09:58:16

标签: r

我有以下R代码

> z1 <- sample(9, 50, replace=T)
> z2 <- sample(10:100, 100, replace=T)
> z3 <- c(z1, z2)
> dt <- data.table(z3)
> dt
     z3
  1:  9
  2:  7
  3:  7
  4:  2
  5:  5
 ---   
146: 56
147: 91
148: 83
149: 72
150: 40

我想在我的数据表中选择我的训练和测试行,以便60%的行是训练数据。这是60%* 150 = 90

在这90个中,我想从0-9中选择30个随机行,其余60个从10到100个随机行。

是否可以使用data.table一个衬垫来做这个?

1 个答案:

答案 0 :(得分:0)

我不知道一线解决方案。我这样做:

test.inds <- c( sample( length(z1), 30 ), sample( length(z2), 60)+50 )
test.dt   <- dt[test.inds]
train.dt  <- dt[-test.inds]