【发布时间】:2019-11-09 15:58:33
【问题描述】:
我有一个看起来像这样的数据集
+----+------------+-------+
| ID | ID_Count | Count |
+----+------------+-------+
| 1 | 1.1 | 5 |
| 1 | 1.2 | 4 |
| 1 | 1.3 | 3 |
| 2 | 2.1 | 4 |
| 2 | 2.2 | 2 |
| 3 | 3 | 0 |
| 4 | 4.1 | 5 |
| 4 | 4.2 | 3 |
+----+------------+-------+
我想反转 Count 列中 ID 与前一个相同的组,但不反转 ID 列。我的结果应该是这样的:
+----+------------+-------+
| ID | ID_Count | Count |
+----+------------+-------+
| 1 | 1.1 | 3 |
| 1 | 1.2 | 4 |
| 1 | 1.3 | 5 |
| 2 | 2.1 | 2 |
| 2 | 2.2 | 4 |
| 3 | 3 | 0 |
| 4 | 4.1 | 3 |
| 4 | 4.2 | 5 |
+----+------------+-------+
ID_Count 只是一列,表明 ID 的顺序不应更改。
【问题讨论】:
-
堆栈溢出不是代码编写服务。显示您尝试过的内容以及遇到的错误。一种方法是使用两个分组 DOW 循环,第一个将散列加载为 LIFO 堆栈,第二个卸载 LIFO 堆栈。另一种是假定最大组大小并使用临时数组作为 LIFO 堆栈。
-
为什么 ID=3 的 ID_COUNT 不遵循其他值的模式?为什么不直接删除 ID_COUNT 并重新创建它?
-
ID_Count是一个变量,用于数据集的其他变量,所以不能排除。它遵循的规则是,当 ID 重复时,它得到形状“
- ”,当它不重复时,它得到“ ”。 -
如果您知道规则,您可以重新创建它。我很好奇当重复次数超过 9 次时这种格式是如何工作的。
标签: sorting sas dataset proc-sql