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

R语言数据集子集筛选问题:保留Malaria为0和1的样本并排除IIWI物种

问题分析与解决方案

我来帮你搞定这个数据集子集的问题~先说说你原来代码里的两个关键问题:

  1. 条件判断错用了赋值符号=,应该用等于运算符==;
  2. 0 & 1的逻辑完全不对,你想表达的是Malaria取值为0或1,不是同时满足0和1(这根本不可能),另外还漏掉了排除IIWI物种的条件。

正确的Base R写法

用subset()函数的话,把两个要求的条件用&(且)连接起来就行:

datPox2 <- subset(datPox, Malaria %in% c(0, 1) & Species != "IIWI")

也可以把Malaria的条件拆成“等于0或等于1”,效果完全一致:

datPox2 <- subset(datPox, (Malaria == 0 | Malaria == 1) & Species != "IIWI")

更直观的tidyverse写法

如果你习惯用tidyverse工具集,dplyr的filter()函数语法会更清晰:

library(dplyr)
datPox2 <- datPox %>%
  filter(Malaria %in% c(0, 1), Species != "IIWI")

结果验证

用你提供的样本数据测试的话,执行代码后只会保留第3、4行的HAAM样本:

  • 第1、2、5、6行的Malaria取值为2,会被过滤;
  • 第7-10行的IIWI物种会被排除;
  • 最终剩下的就是完全符合你需求的样本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:23:13