2017-05-04 66 views
2

我有一個包含400.000個案例的數據集。問題是,有時一個案件有時會有大約21000個二重字符。另一個問題是,我不能只刪除這個doublettes,因爲我不知道哪個case是完整的所有信息。不幸的是沒有修改的日期。所以我想知道是否有可能選擇信息量最大的案例來刪除信息量較少的所有doublettes。選擇合適的雙擊刪除

感謝您的幫助提前!

回答

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的行數 - 全部包含相同數量的非空單元。您必須決定如何在這些行中進行選擇,或者考慮將它們聚合起來。