【发布时间】:2018-10-02 00:09:39
【问题描述】:
我想保留所有重复的 ID,除非由于缺少值而没有新信息。例如,
data test;
input id var1 var2 var3
datalines;
1 2 3 4
1 4 . 4
1 6 5 4
1 . 3 .
1 2 4 4
1 6 . 4
1 . 8 4
;
run;
我希望结果是
1 2 3 4
1 4 . 4
1 6 5 4
1 2 4 4
1 . 8 4
第 4 行被删除,因为第 1 行具有相同的 id、var2 和 var3。第 6 行被删除,因为第 3 行具有相同的 id、var1、var3。我还想要一个强大的解决方案,因为我希望该解决方案适用于数据集中的任意数量的变量(id 始终是唯一键)。
有什么想法吗?我在考虑 sort nodupkey 但如果连续有多个缺失值,它就不起作用。
【问题讨论】:
-
你说第 4 行被删除是因为第 1 行具有相同的 id、var2 和 var3(但缺少 var3)
-
所以您只想保留至少包含一个以前看不见的、非缺失值的行,至少有一个变量(每个 id)?如果有一个额外的行带有
var1 = 2, var2 = 5, var3 = 4,您会保留它(因为它是一个新的值组合)还是会因为之前看到每个单独的值而放弃它? -
如果它们因缺少其中一个而不同,我认为是相同的。我会保留新的价值观组合。
-
如果您有两个重复项,您对要保留哪一个有任何偏好吗?例如第一个?还是顺序不重要?
-
顺序无所谓
标签: sas