sas - SAS 表中的序列
问题描述
我正在寻找向我的 sas 数据集添加一个序列列,但要根据 ids 和交易日期。为了说明,下面是我所指的表格:
ID | TXN_DT |
01 | 01JAN2020 |
01 | 01JAN2020 |
01 | 02JAN2020 |
01 | 03JAN2020 |
02 | 01JAN2020 |
02 | 02JAN2020 |
02 | 02JAN2020 |
02 | 03JAN2020 |
02 | 03JAN2020 |
我想添加一个这样的序列:
ID | TXN_DT | SEQ |
01 | 01JAN2020 | 1 |
01 | 01JAN2020 | 1 |
01 | 02JAN2020 | 2 |
01 | 03JAN2020 | 3 |
02 | 01JAN2020 | 1 |
02 | 02JAN2020 | 2 |
02 | 02JAN2020 | 2 |
02 | 03JAN2020 | 3 |
02 | 03JAN2020 | 3 |
我正在尝试运行以下代码,但它似乎向上跳了一行,而不是复制前一行的值,而是跳到上面的 2 行。
data want;
set have;
by id;
if first.id then seq=1;
else seq+1;
if txn_dt=lag(txn_dt) then seq = lag(seq);
keep id seq txn_dt;
run;
有什么帮助吗?提前致谢!
解决方案
尝试
if first.id then seq=0;
seq + (first.id or txn_dt ne lag(txn_dt);
推荐阅读
- android - 当我尝试设置地理围栏区域时出现 GEOFENCE_NOT_AVAILABLE 错误
- java - 编译失败“任务:app:compileDebugJavaWithJavac FAILED”
- ruby-on-rails - Ruby on Rails 博客教程的评论部分未呈现
- r - R函数根据单独数据框中的条件填充数据框
- javascript - Discord bot:ReferenceError:未定义时刻
- swift - Playground 中没有这样的模块“SPCCore”。等效模块在哪里?
- visual-studio-code - 如何在 Windows 上的 VS Code 中使变量在侧边栏中可见
- makefile - Graphviz 使用 Makefile 未定义对“_imp__agread”的引用
- python - GA 交易和项目与 Python
- postgresql - Liquibase 变更集无法重新运行