从间隔生成一组随机唯一整数

Low*_*ang 20 r

我正在尝试构建一些机器学习模型,

所以我需要一个训练数据和一个验证数据

所以假设我有N个例子,我想在数据框中选择随机x个例子.

例如,假设我有100个例子,我需要10个随机数,有没有办法(有效地)为我生成10个随机INTEGER数,从我的样本数据中提取训练数据?

我尝试使用while循环,并慢慢改变重复的数字,但运行时间不是很理想,所以我正在寻找一种更有效的方法来做到这一点.

有人可以帮忙吗?

Kon*_*lph 29

sample(或sample.int)这样做:

sample.int(100, 10)
# [1] 58 83 54 68 53  4 71 11 75 90
Run Code Online (Sandbox Code Playgroud)

将生成1-100范围内的十个随机数.您可能想要replace = TRUE,替换哪些样本:

sample.int(20, 10, replace = TRUE)
# [1] 10  2 11 13  9  9  3 13  3 17
Run Code Online (Sandbox Code Playgroud)

更一般地,来自任意值的矢量的sample样本n观察.

  • 另外,@ LowYiXiang,你可能会发现`head`和`tail`在这里很有用:`idx < - sample.int(100); train.idx < - head(idx,10); test.idx < - tail(idx,-10);` (2认同)