sas - 根据条件删除行
问题描述
我想根据某些条件删除 SAS 中的行(或观察):如果名称列中的第 i 个名称与第 (i+1) 个名称相同,并且第 i 个日期与 ( i+1)-th 日期,删除第 (i+1)-th 行。如果这些列中的条目与第 i 行中的条目相同,我还想删除第 i+2、i+3 行等。但是,如果前面的行被删除,这可能会迭代地完成。
我对SAS相当陌生。我知道我应该使用某种形式的循环,但我不知道如何使用它。这个问题困扰了我几天。我希望有人可以帮助我。
解决方案
BY
这是一个可以使用语句和自动FIRST.
按组变量标志来解决的处理任务。
data want;
set have;
by date name;
if first.name;
run;
如果按组行是连续的但未排序,则可以将NOTSORTED
选项添加到BY
语句中。
如果实际数据结构具有进一步分组 name:dates 的附加“父”分类变量(例如,说insuranceCompany
和policyGroup
,或team
),您将需要在 by-group 语句中使用附加变量。
推荐阅读
- mysql - nodejs sequelize 连接到远程 mySQL 数据库总是给 ETIMEDOUT
- python - 为什么我在 Atom 上运行 py 脚本时无法导入 web3?
- angular - Angular 模板驱动的表单动态验证
- graph - 如何获取关系属性> =某个值的可变长度模式路径的一部分?
- java - 遍历列表以替换 Java 中的随机元素
- ruby-on-rails - ruby on rails 和 postgresql 连接出错和错误 500
- html - 如何在 Wordpress 中使用 CSS 修复侧边栏?
- c++ - 视觉泄漏检测器不报告内存泄漏
- java - 哈希表 Java 实现
- docusignapi - Docu 标志回调 Ip 范围