我有一个170列和2000行的数据集。许多观察结果是精确重复或相似的结果。我的数据采用以下格式:
A B C D
Entry 1 Florida . 54
Entry 1 . . 54
Entry 1 Florida . 54
Entry 1 Florida New .
Entry 1 Florida New 54
您会注意到,列A总是填充的。我想对这些数据进行重复数据删除,以便只返回
A B C D
Entry 1 Florida New 54
关于如何在SAS中执行此操作的任何建议?
谢谢!
答案 0 :(得分:2)
这将为A的每个级别提供最后一个不丢失的值。
data have;
input (A B C)(&$) D;
cards;
Entry 1 Florida . 54
Entry 1 . . 54
Entry 1 Florida . 54
Entry 1 Florida New .
Entry 1 Florida New 54
;;;;
run;
proc print;
run;
data want;
update have(obs=0) have;
by a;
run;
proc print;
run;
答案 1 :(得分:0)
在这种情况下,假设所有信息的权重均等,并且主键为A。我们将计算A的缺失值数量,并且仅使缺失值最少的行。缺失值最少的行为您提供有关主键A的每个值的最多信息。
proc sort data=have;
by A;
run;
data count_info;
set have;
by A;
info_count = cmiss(of _ALL_);
run;
proc sort data=count_info;
by A info_count;
run;
data want;
set count_info;
by A info_count;
if(first.A);
run;