我有以下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一个衬垫来做这个?
答案 0 :(得分:0)
我不知道一线解决方案。我这样做:
test.inds <- c( sample( length(z1), 30 ), sample( length(z2), 60)+50 )
test.dt <- dt[test.inds]
train.dt <- dt[-test.inds]