我有一个包含400,000个案例的数据集。问题是,一个案例有时会有大约21.000个双重字符。另一个问题是我不能只删除doublettes,因为我不知道哪个案例包含所有信息。不幸的是,没有修改日期。所以我想知道是否有可能选择具有最多信息的案例来删除所有具有较少信息的双联。
提前感谢您的帮助!
答案 0 :(得分:0)
我建议计算每行中缺失/空单元格,然后选择每个ID为空单元格数最少的行。
*First creating some fake data for demonstration.
*I'm constructing this so it contains a mixture of string and number variables.
DATA LIST list/ID (f) Svar1 (a1) Nvar1(f) Svar2 (a1) Nvar2(f).
begin data
111,'a',1,'a',2
111,p ,1,'b',
111,'c',1, ,1
222,'v',1, ,2
222,'k',2,'x',2
222,'n',,'z',
end data.
* note the separate treatment of string and number variables.
count EmptyCells=Svar1 Svar2("") Nvar1 Nvar2 (sysmis).
aggregate /outfile=* mode=addvariables /break=id /EmptyCells_min=min(EmptyCells).
* variable EmptyCells now contains the count of empty cells in every row.
* EmptyCells_min has the minimum number of empty cells in a row for every ID.
select if EmptyCells_min=EmptyCells.
选择后,您将获得每个ID具有最大非空单元格数的行。 注意 - 您可能会为一个ID留下多个行 - 所有行都包含相同数量的非空单元格。您必须决定如何在这些行中进行选择,或考虑聚合它们。