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

R语言Iris鸢尾花数据集抽取50条非随机指定物种行的实现问题

R语言鸢尾花抽样问题解决方案

原有代码错误原因

  • 语法错误:R中提取数据框列需使用$符号,鸢尾花数据集物种列名为大写开头的Species,iris.species是无效写法
  • sample函数用法错误:直接将数据框iris传入sample函数的第一个参数时,sample会默认对数据框的列进行抽样,而非行,不符合抽取行的需求

正确实现代码

和你已编写的前序代码衔接,完整可运行的实现如下:

set.seed(1)
y <- sample(150, 1)
x <- iris[y, 5]
# 筛选出所有不属于选中物种的行索引
valid_idx <- which(iris$Species != x)
# 无放回抽取50个索引
sampled_idx <- sample(valid_idx, size = 50, replace = FALSE)
# 提取对应行得到最终结果
z <- iris[sampled_idx, ]

简化写法

也可以先过滤出符合条件的子集再抽样,代码更简洁:

set.seed(1)
exclude_species <- iris[sample(150,1), 5]
target_data <- iris[iris$Species != exclude_species,]
z <- target_data[sample(nrow(target_data), 50, replace = FALSE),]

内容的提问来源于stack exchange,提问作者D idsea J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:39:01