sas - 仅显示在一列中按组更改的连续观察值
问题描述
我有下面的数据集,我只想显示 Centre_code 根据客户的 Contract_No 更改的连续行。
数据集 1
Date Customer Contract_No Centre_code
09Jul19 AAAAA AAAAA1234 319
10Jul19 AAAAA AAAAA1234 319
11Jul19 AAAAA AAAAA1234 102
09Jul19 AAAAA AAAAA5678 102
10Jul19 AAAAA AAAAA5678 102
11Jul19 AAAAA AAAAA5678 319
09Jul19 BBBBB BBBBB1234 515
10Jul19 BBBBB BBBBB1234 515
11Jul19 BBBBB BBBBB1234 515
09Jul19 BBBBB BBBBB11878 511
10Jul19 BBBBB BBBBB11878 511
11Jul19 BBBBB BBBBB11878 515
10Jul19 BBBBB BBBBB48741 511
10Jul19 BBBBB BBBBB48741 511
11Jul19 BBBBB BBBBB48741 515
数据集 2
Date Customer Contract_No Centre_code
10-Jul-19 AAAAA AAAAA1234 319
11-Jul-19 AAAAA AAAAA1234 319
12-Jul-19 AAAAA AAAAA1234 319
13-Jul-19 AAAAA AAAAA1234 319
14-Jul-19 AAAAA AAAAA1234 319
15-Jul-19 AAAAA AAAAA1234 319
16-Jul-19 AAAAA AAAAA1234 319
17-Jul-19 AAAAA AAAAA1234 319
18-Jul-19 AAAAA AAAAA1234 319
19-Jul-19 AAAAA AAAAA1234 319
20-Jul-19 AAAAA AAAAA1234 319
21-Jul-19 AAAAA AAAAA1234 319
22-Jul-19 AAAAA AAAAA1234 102
期望输出数据集 1
Date Customer Contract_No Centre_code
10Jul19 AAAAA AAAAA1234 319
11Jul19 AAAAA AAAAA1234 102
10Jul19 AAAAA AAAAA5678 102
11Jul19 AAAAA AAAAA5678 319
10Jul19 BBBBB BBBBB11878 511
11Jul19 BBBBB BBBBB11878 515
10Jul19 BBBBB BBBBB48741 511
11Jul19 BBBBB BBBBB48741 515
期望输出数据集 2
Date Customer Contract_No Centre_code
21-Jul-19 AAAAA AAAAA1234 319
22-Jul-19 AAAAA AAAAA1234 102
解决方案
如果通过
Center_code 更改的连续行
您的意思是您想查看更改前的观察结果和更改后的观察结果,您可以使用 FIRST.CENTER_CODE 和 LAST.CENTER_CODE 标志。(确保使用 NOTSORTED 关键字,因为记录是按 DATE 排序的,而不是 CONTRACT_NO 值中的 CENTER_CODE。)如果您还消除了第一个中心代码的第一个观察值和最后一个中心代码的最后一个观察值,那么您将只获得合同至少有一个变化。
data want;
set have ;
by customer contract_no center_code notsorted ;
if (last.center_code and not last.contract_no)
or (first.center_code and not first.contract_no)
;
run;
推荐阅读
- c# - 在 C# 中将 int 变量初始化为减一
- c# - 如何使用 Microsoft.Office.Interop.Excel 设置隐藏和空单元格处理
- html - 将水平菜单转换为垂直菜单
- python - 我可以使用类实例的类来提高可读性吗?
- python - 将 Python 模块导入 AWS Lambda
- javascript - 如何防止 node.js 中的竞争条件?
- python - BeautifulSoup 找不到网页上存在的类?
- javascript - 如何通过我的选择标签中选择的数字过滤我的 json 数据
- python - 循环为给定的数字范围创建一个新行
- javascript - 点击翻转卡片并在 Phaser 中增加分数