讲师中心 微信公众号
AI工具推荐 视频效率加速

如何正确统计 CSV 中成对选择题的选中次数

风明吖_3275

风明吖_3275

发布时间:2026-02-20 16:07:00

|

162人浏览过

|

来源于php中文网

原创

如何正确统计 CSV 中成对选择题的选中次数

本文详解如何修复学生选择数据统计逻辑错误:原代码仅处理答案为 0 的情况,且未正确映射答案索引与成对选项(如 apple/pear、dog/cat)的对应关系,导致统计结果仅覆盖一半选项且计数失准。

本文详解如何修复学生选择数据统计逻辑错误:原代码仅处理答案为 0 的情况,且未正确映射答案索引与成对选项(如 apple/pear、dog/cat)的对应关系,导致统计结果仅覆盖一半选项且计数失准。

在处理结构化选择题数据时(例如每道题提供两个互斥选项,学生从文本文件中选出其一,并以 0 或 1 编码存入 CSV),统计各选项被选中的总次数是常见需求。但若数据映射逻辑存在偏差,极易引发“只统计了一半”或“计数错位”等隐蔽错误——正如本例所示:原始 classSummary() 方法遍历学生答案数组 answers,却错误地将第 i 个答案直接关联到 choices.get(i),而实际设计中,每个 answers[i] 对应的是第 i 对选项(即两个候选词),0 表示选第一个,1 表示选第二个。

因此,关键在于建立正确的索引映射关系:

  • answers[0] == 0 → 应增加 choices.get(0) 的计数(即第一对中的第一个选项,如 "Apple");
  • answers[0] == 1 → 应增加 choices.get(1) 的计数(即第一对中的第二个选项,如 "Pear");
  • answers[1] == 0 → 增加 choices.get(2)(第二对第一个,如 "Dog");
  • answers[1] == 1 → 增加 choices.get(3)(第二对第二个,如 "Cat");
    以此类推,通用规则为:answers[i] == 0 → 更新 choices.get(i * 2);answers[i] == 1 → 更新 choices.get(i * 2 + 1)。

以下是修正后的完整实现:

Knowledge Graph - Csv Graph Loader Generator
Knowledge Graph - Csv Graph Loader Generator

从 CSV 数据集生成图数据库加载器和三元组映射。将表格 CSV 数据转换为图数据库可直接使用的节点、边和三元组。

下载
public static void classSummary() {
    for (Student student : data) {
        int[] answers = student.getAnswers();
        for (int i = 0; i < answers.length; i++) {
            if (answers[i] == 0) {
                choices.get(i * 2).incrementCount(); // 推荐封装为 incrementCount() 而非 get/set 组合
            } else if (answers[i] == 1) {
                choices.get(i * 2 + 1).incrementCount();
            }
            // 注意:此处隐含假设 answers[i] 只可能为 0 或 1;如需健壮性,建议添加非法值校验
        }
    }
}

注意事项与最佳实践:

  • ✅ 必须补全 else 分支:仅判断 == 0 会忽略所有 == 1 的记录,直接导致约 50% 的选择未被统计;
  • ✅ 严格遵循 i → [i*2, i*2+1] 映射:这是由题目结构(50 对共 100 个独立选项)决定的数据布局,不可简化为 i → i;
  • ⚠️ 增强容错能力:在生产环境中,建议在循环内加入 if (answers[i] != 0 && answers[i] != 1) 的异常提示或日志,避免静默失败;
  • ? 优化可维护性:将 setCount(getCount() + 1) 封装为 incrementCount() 方法,既提升语义清晰度,也便于后续扩展(如线程安全控制);
  • ? 验证数据一致性:运行前确保 choices.size() == answers.length * 2,否则索引越界风险极高。

通过上述修正,统计逻辑即可完整覆盖全部 100 个选项,准确反映每位学生在每对选择中的真实倾向,为后续数据分析(如偏好热力图、选项淘汰分析等)奠定可靠基础。

热门AI工具

更多
超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
length函数用法
length函数用法

length函数用于返回指定字符串的字符数或字节数。可以用于计算字符串的长度,以便在查询和处理字符串数据时进行操作和判断。 需要注意的是length函数计算的是字符串的字符数,而不是字节数。对于多字节字符集,一个字符可能由多个字节组成。因此,length函数在计算字符串长度时会将多字节字符作为一个字符来计算。更多关于length函数的用法,大家可以阅读本专题下面的文章。

1907

2023.09.19

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

4458

2023.08.10

数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

1902

2023.07.04

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

2670

2023.08.07

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

7210

2023.10.16

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

3084

2024.03.13

Python 数据分析处理
Python 数据分析处理

本专题聚焦 Python 在数据分析领域的应用,系统讲解 Pandas、NumPy 的数据清洗、处理、分析与统计方法,并结合数据可视化、销售分析、科研数据处理等实战案例,帮助学员掌握使用 Python 高效进行数据分析与决策支持的核心技能。

4685

2025.09.08

Python 数据分析与可视化
Python 数据分析与可视化

本专题聚焦 Python 在数据分析与可视化领域的核心应用,系统讲解数据清洗、数据统计、Pandas 数据操作、NumPy 数组处理、Matplotlib 与 Seaborn 可视化技巧等内容。通过实战案例(如销售数据分析、用户行为可视化、趋势图与热力图绘制),帮助学习者掌握 从原始数据到可视化报告的完整分析能力。

7192

2025.10.14

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

40

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn