You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中iris数据集子集划分:训练集构建报错求助

解决iris数据集训练集构建的问题

你遇到的问题是因为在R中,&是逐元素的逻辑运算符,当你用1:10 & 21:150时,R会把短向量1:10循环扩展到和21:150一样的长度,然后逐元素做逻辑与,这显然不是你想要的“合并两个行索引区间”的效果,所以会出错。

这里有两种简便的正确方法:

方法1:合并行索引区间

直接用c()把两个行号区间合并起来,就能准确选取1-10行和21-150行:

# 先创建iris的副本(假设你需要iris_n)
iris_n <- iris
# 构建训练集
iris_train <- iris_n[c(1:10, 21:150), ]
# 你的测试集写法是正确的
iris_test <- iris_n[11:20, ]

方法2:使用负索引(更简洁)

因为训练集其实就是**排除测试集(11-20行)**的所有行,所以可以直接用负索引选取,代码更短:

iris_train <- iris_n[-11:-20, ]
iris_test <- iris_n[11:20, ]

两种方法都能得到你需要的训练集,第二种更简洁,推荐使用。

内容的提问来源于stack exchange,提问作者Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:42:56