【发布时间】:2018-08-09 01:52:46
【问题描述】:
我对 SAS 和 SQL 都很陌生,希望能得到帮助。
我有一个包含学生 ID、学期和审计类型的数据集。每个学期有 2 个 audit_types,学生可以出现在其中一个或两个都出现。
我需要为每个学期的每个学生 id 的这 3 个场景中的每一个创建一个标志:1)如果学生在 仅 audit_type_1,2)如果他/她在 仅 audit_type_2 和 3) 如果她/他在该期限内出现在 audit_type_1 和 audit_type_2 两者。不知道如何发布我的数据,但在这里
样本数据
| Id | Term | Audit_type |
|---- |------------- |-----------: |
| 1 | Fall 2016 | 1 |
| 1 | Fall 2016 | 2 |
| 2 | Winter 2017 | 1 |
| 3 | Winter 2017 | 2 |
| 4 | Spring 2017 | 1 |
| 4 | Spring 2017 | 2 |
如下所示,我能够使用 case 为前 2 个场景创建一个标志:
proc sql;
create table test as
select id, term, audit_type,
case
when audit_type in ('audit_type_1') then 1
when audit_type in ('audit_type_2 ') then 2
end as audit_type_flag
from have;
我不知道如何标记第三种情况。所有帮助将不胜感激。提前感谢您的帮助和支持。所以,我想要下面的东西:
| Id | Term | Audit_type | Flag |
|---- |------------- |-----------: |------ |
| 1 | Fall 2016 | 1 | 3 |
| 1 | Fall 2016 | 2 | 3 |
| 2 | Winter 2017 | 1 | 1 |
| 3 | Winter 2017 | 2 | 2 |
| 4 | Spring 2017 | 1 | 3 |
| 4 | Spring 2017 | 2 | 3 |
【问题讨论】:
-
你也需要分享你的代码和数据样本