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

如何使用多值列表从data.frame中筛选指定行?

从data.frame中按多个ID筛选行子集

核心解决方案

用%in%运算符替代==,它会检查每个ID值是否属于目标ID集合,这才是多值筛选的正确逻辑:

fires <- subset(emergencies, ID %in% c(2,3,7,8), select = c("type","frequency", "casualties"))

为什么之前的方法不对?

你之前用ID == c(2,3,7,8)是逐元素循环匹配:R会把ID列和目标向量按位置一一对应,向量长度不够时会重复循环。这种方式不仅会漏掉符合条件的行,还可能因为循环匹配产生错误的筛选结果,完全不符合“筛选所有ID为2、3、7、8的行”的需求。

其他等价实现方式

除了subset函数,还可以直接用方括号索引:

fires <- emergencies[emergencies$ID %in% c(2,3,7,8), c("type","frequency", "casualties")]

如果习惯用tidyverse工具链,也可以用dplyr包:

library(dplyr)
fires <- emergencies %>%
  filter(ID %in% c(2,3,7,8)) %>%
  select(type, frequency, casualties)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:03:17