sas - 计算每个问题的正确百分比
问题描述
嗨,我正在尝试计算每个问题编号的正确百分比,其中值为 1 的分数是正确答案。我需要按表格将其分开,这意味着表格 A 上的问题 1 和表格 B 上的问题 1 应该有不同的百分比。我正在使用一个名为 onetable 的表格计算这些百分比,该表格看起来像这样
形式 | 问题编号 | 分数 |
---|---|---|
一种 | 1 | 0 |
一种 | 1 | 0 |
乙 | 1 | 1 |
乙 | 2 | 1 |
该表实际上看起来像表格 A 和 QuestionNumber 的许多行,其值为 1,得分为 1 或 0,然后是 Form A 的许多行, QuestionNumber 值为 2,这适用于 150 QuestionNumbers 直到它变成 Form B 并且做同样的事情。
我想我可能需要使用 proc freq 或其他东西,但我不知道到底要使用什么,所以我没有任何我认为有用的代码。有人有建议吗?下面是我正在尝试创建的那种表。
形式 | 问题编号 | 问题百分比 |
---|---|---|
一种 | 1 | 0.16 |
一种 | 2 | 0.76 |
一种 | 3 | 0.42 |
一种 | 4 | 0.94 |
解决方案
如果您只有 0/1 的 PROC MEANS 是汇总数据的好方法。
二进制变量的 % 等于值的平均值。
(Count of X = 1) / (Count of X in (0,1)) => sum(X) / N(x) => Mean(x)
像这样的东西可能也适合你:
proc means data=have mean stackods;
class form question;
var score;
ods output summary = want;
run;
proc print data=want;
format mean percent12.1;
run;
如果您出于某种原因想要计算 0 而不是 1,那么您将在第二步中执行 1-mean。
推荐阅读
- laravel - 尝试通过 Laravel 上的字符串访问图像
- angular - 如何使用带有 http 响应的异步等待
- javascript - 页面加载或刷新时JS不执行代码
- batch-file - Generate File Name Dynamically: Based on Content of the File (.bat)
- powershell - Remove SideIndicator field from compare object output in powershell
- vue.js - VueJS - How to separate class instances across multiple components? (With TS & decorators)
- c# - Slow first HTTP request with HttpWebRequest
- python - catch subprocess output spawned by imported module
- go - Fprint/Fprintf 与 conn.Write 的区别
- python - Getting error message trying to use defined functions for simple equation