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

疟疾模型中基于房屋类型与蚊帐使用情况的感染人群统计求助

按房屋类型与蚊帐使用情况统计感染人群的实现方案

1. 单个维度的感染人群统计

你之前的代码缺少感染状态筛选,这是统计感染人群的核心条件,以下是修正后的实现:

按房屋类型统计感染人数

假设数据库中存储感染状态的字段为h_infected(请替换为你实际的字段名),针对特定房屋类型(比如类型A)的感染人数统计代码:

count(humans, h->h.h_type == "A" && h.h_infected == true);

将"A"替换为你需要统计的其他房屋类型值,即可得到对应分组的感染人数。

按是否使用蚊帐统计感染人数

同理,加入感染状态条件后,分别统计使用/未使用蚊帐的感染人群:

// 使用蚊帐的感染人数
count(humans, h->h.h_benetuse == true && h.h_infected == true);

// 未使用蚊帐的感染人数
count(humans, h->h.h_benetuse == false && h.h_infected == true);

2. 交叉维度的组合统计(房屋类型+蚊帐使用)

如果需要同时统计两种维度的交叉结果(比如每种房屋类型下,用/不用蚊帐的感染人数),可以直接叠加条件:

// 房屋类型A中使用蚊帐的感染人数
count(humans, h->h.h_type == "A" && h.h_benetuse == true && h.h_infected == true);

// 房屋类型A中未使用蚊帐的感染人数
count(humans, h->h.h_type == "A" && h.h_benetuse == false && h.h_infected == true);

如果你的建模工具支持groupBy函数,还可以一次性生成所有交叉分组的统计结果:

groupBy(humans, 
        h->h.h_type,  // 第一分组维度:房屋类型
        h->groupBy(h, 
                   hh->hh.h_benetuse,  // 第二分组维度:蚊帐使用情况
                   hhh->count(hhh, hhhh->hhhh.h_infected == true)  // 统计每组感染人数
                  )
       );

3. 数据库层面直接查询(若需从数据库提取原始数据)

如果需要直接操作数据库(用SQL),可以执行以下分组查询:

按房屋类型统计

SELECT h_type, COUNT(user_id) AS infected_count
FROM your_table_name
WHERE h_infected = TRUE
GROUP BY h_type;

按蚊帐使用情况统计

SELECT h_benetuse, COUNT(user_id) AS infected_count
FROM your_table_name
WHERE h_infected = TRUE
GROUP BY h_benetuse;

交叉维度统计

SELECT h_type, h_benetuse, COUNT(user_id) AS infected_count
FROM your_table_name
WHERE h_infected = TRUE
GROUP BY h_type, h_benetuse;

请将your_table_name替换为你实际的数据库表名,字段名也需匹配你的数据库定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:55:07