【发布时间】:2021-03-24 23:11:08
【问题描述】:
我希望这封邮件能帮助您。我对 SAS 编程非常陌生,我正在尝试创建一些代码来计算多列中唯一条目的数量以进行多次观察。我也有一些我想忽略的专栏。下面是一个示例数据集:
|ID | Var1 | NotNeededVar2 | Var3 | Var4 | Var5 |
| 1 | String1 | StringSomething | String2 | String3 | String3 |
| 2 | String1 | StringSomething | String2 | String1 | String2 |
| 3 | String1 | StringSomething | String1 | String1 | String1 |
| 4 | String1 | StringSomething | . | String2 | String2 |
期望的结果是一个新数据集,其中包含一个新添加的列,其中包含第 1、3、4 和 5 列的唯一条目计数:
|ID | Var1 | NotNeededVar2 | Var3 | Var4 | Var5 | Unique(Var1, 3, 4, 5) |
| 1 | String1 | StringSomething | String2 | String3 | String3 | 3 |
| 2 | String1 | StringSomething | String2 | String1 | String2 | 2 |
| 3 | String1 | StringSomething | String1 | String1 | String1 | 1 |
| 4 | String1 | StringSomething | . | String2 | String2 | 2 |
到目前为止,我所能想到的只是使用多个 if/then 语句来测试列是否唯一且没有丢失,但这似乎是一种肯定会犯一些错误并使其变得非常复杂的方法。
我们将不胜感激任何和所有的帮助!
编辑:更改示例以反映字符串/字符值而不是数值。不知道有没有影响,不过这个更接近我的实际情况。
EDIT2:插入不需要的列以更好地反映我的数据集。
【问题讨论】:
-
你只有三列吗?会扩大吗?
-
我确实有更多的专栏。我总共要考虑四列。我也有一些我想忽略的专栏,我现在才意识到这可能会使它变得更加困难。我已经更新了示例。
-
为什么不直接转置数据呢?然后使用
count(distinct var)进行简单的sql 查询就可以了。
标签: sas