SAS EG:排除数据集



我正在尝试排除显示在名为 - clmspull 和 enregister 的表中的个人列表。关键是要排除糖尿病患者,因为我们正在寻找那些接受过糖尿病筛查的人。

我将列表保存为名为"diabexc"的永久数据集。 我知道我在某处进行了合并,例如:

data excdiab; /*new data set that will exclude the diabetics*/ merge diabexc (IN=a) clmspull (IN=b) enroll (IN=c); by edipn; run;

我不确定这是否正确,我觉得我走在正确的轨道上......我们只是希望从数据中删除这些人。

这是今天到期的,所以我很疯狂。非常感谢您能提供的任何帮助!谢谢。

如下所示,在合并语句后使用代码中的 if a = 1 和 b = 0和 c = 0。 您也可以使用 if a 而不是 (b 或 c(。 这意味着来自第一个数据集的记录不在第二个或第三个数据集中。

data diabexc;
input edipn ;
datalines;
1
2
3
4
;
data clmspull;
input edipn ;
datalines;
3
5
;
data enroll;
input edipn ;
datalines;
2
6
;
data excdiab; /*new data set that will exclude the diabetics*/
merge diabexc (IN=a) clmspull (IN=b) enroll (IN=c); 
by edipn; 
if a = 1 and b = 0 and c = 0;
run;

你可以在proc sql中使用子查询:

处理器 SQL ; 将表扩展为 选择* 与迪亚贝克相比 其中 epidn ^in(从 clmspull 中选择 epidn( 和 epidn ^in(从注册中选择 epidn( ; 退出;

最新更新