r - R:为什么负索引不能创建补集?
问题描述
我正在尝试创建训练、验证和测试数据集。(在我将数据框过滤到适当的数据集之前,我正在尝试使用每个数据集将包含的行列表创建向量。
有 654 个观察值,我打算将 354 个放在训练中,200 个验证,100 个测试.这是我使用的代码:
x <- 1:654
train_ind <- sample(x, 354)
rest <- x[-train_ind]
length(rest)
[1] 300
valid <- sample(rest, 200)
length(valid)
[1] 200
test <- rest[-valid]
length(test)
[1] 210
我不明白为什么test
对象是210!
我认为因为valid
只有长度 200,如果我取rest
(300) 和负索引valid
,那么我将只剩下 100。
我感谢任何输入我做错了什么。
谢谢
解决方案
您可以只打乱索引(无需替换的采样),然后获取前几个用于测试和其他用于训练。
indices <- sample(seq(20))
test <- indices[1:10]
train <- indices[11:20]
train
#> [1] 10 8 12 1 7 20 13 18 4 11
test
#> [1] 19 3 15 2 6 9 16 14 17 5
由reprex 包(v2.0.0)于 2021-09-09 创建
推荐阅读
- python - 使用 Python matplotlib 排序水平条
- flutter - 如何从用户输入中计算文本字符串中的单词数
- javascript - 我的 JavaScript 附加函数有什么问题?
- php - 哪些用户态字符串会被 PHP 自动执行?
- c++ - MakeFile 添加库
- python - 如何根据另一列访问熊猫列中的值?
- python - 如何使用用户输入在 pymongo 中查找和更新
- python-3.x - 查询前的Python3 psycopg2测试时间戳值
- javascript - JavaScript keyup 事件错误
- android - 当我们使用 Koin 依赖注入时,将密码设置为用户的房间加密