R语言基于iris数据集筛选指定行列创建新数据框df方法咨询
R语言处理iris数据集的正确实现代码
常见错误说明
你之前的代码存在几个问题:
- 首次构造
df时仅保留了两列,丢失了后续筛选必需的Species字段 - 多条件筛选逻辑错误:
Species =="versicolor"& "setosa"不符合R语法,多值匹配需用%in%运算符 - 筛选结果未重新赋值给
df,导致修改不会生效
方法1:基础R实现(无需额外包)
library(datasets) data(iris) # 写法1:索引筛选 df <- iris[iris$Species %in% c("setosa", "versicolor"), c("Sepal.Length", "Sepal.Width", "Species")] # 写法2:subset函数(可读性更高) df <- subset(iris, subset = Species %in% c("setosa", "versicolor"), select = c(Sepal.Length, Sepal.Width, Species))
方法2:dplyr实现(你已加载dplyr包,管道符逻辑更清晰)
library(dplyr) library(datasets) data(iris) df <- iris %>% filter(Species %in% c("setosa", "versicolor")) %>% select(Sepal.Length, Sepal.Width, Species)
结果验证
运行dim(df)会返回100 3,即两个物种各50条记录、共3个字段,符合需求。
内容的提问来源于stack exchange,提问作者Morty2456
相关产品推荐
相关产品推荐

