sas - 删除 A || 的重复项 B 等于 B || 一个
问题描述
假设我有一个包含五个观察值和两列的数据集。
A B
Orange Banana
Plum Apple
Banana Orange
Plum Grape
Grape Apple
我想删除 A || 所在的重复行 B 等于 B || A,即删除观察 A = Banana 和 B = Orange,因为在数据集中之前存在 A = Orange 和 B = Banana 的观察。
解决方案
您可以对一行中的值进行排序,以便观察 A = Banana 和 B = Orange 以及观察 A = Orange 和 B = Banana 变为 A = Banana 和 B = Orange。
下面使用 CALL SORTC 对它们进行排序。假设您不想丢失原始变量,它使用视图创建已排序变量的新副本。一旦你把它排序,你可以以任何你想要的方式去重复。
data have ;
input a $8. b $8. ;
cards ;
Orange Banana
Plum Apple
Banana Orange
Plum Grape
Grape Apple
;
data myview/view=myview ;
set have ;
mya=a ;
myb=b ;
call sortc(mya,myb) ;
run ;
proc sort nodupkey data=myview out=want(drop=mya myb) ;
by mya myb ;
run ;
推荐阅读
- oracle - 如何在 oracle apex 中导入导出现有应用程序
- angular - Angular/Asp.net core 3.1 web.config 问题
- angular - 不允许使用 Bottle 服务器 CORS 处理 Angular HTTP 请求
- python - Python 请求和实时会话
- python - 严重的(至少在我看来)定位问题(海龟模块)
- php - 通过从另一个表 MySQL 中选择它来在表中插入上标字符
- google-cloud-source-repos - Accidentally deleted a repository from google source repositories
- setter - 在示例中使用 setter 方法和简单地声明变量有什么区别?
- node.js - 尝试使用 mongoose 和 express 从 node.js 中的 POST API 将数组发布到我的 mongodb 集合中
- arm - Cross-compiling V8 for Arm - hello-world hangs during Initialize