Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: Removing (partial) duplicate obs with lots of vars


From   Nick Cox <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   st: RE: Removing (partial) duplicate obs with lots of vars
Date   Thu, 21 Oct 2010 11:43:56 +0100

Within each -key cusip- set, you need to replace missings by non-missings. Then check for -duplicates-. 

For example, consider -exchange-, presumably a string variable, in which your blanks are presumably empty strings "".  (This is a guess on both counts.) 

bysort key cusip (exchange) : replace exchange = exchange[_N] if missing(exchange) 

You need to use the _last_ observation in each block because empty strings are sorted to first upwards within blocks. 

It may well be that this problem arises only for string variables, in which case 

ds, has(type string)

foreach v in `r(varlist)' { 
	bysort key cusip (`v') : replace `v' = `v'[_N] if missing(`v') 
} 

does this for all string variables. 

If the same problem arises for numeric variables, 

ds, has(type numeric)
foreach v in `r(varlist)' { 
	bysort key cusip (`v') : replace `v' = `v'[1] if missing(`v')
}

as numeric missings are sorted to the end of each block. 

Then apply -duplicates-. 

But only you can say whether this is exactly what you want. 

Nick 
[email protected] 

Poliquin, Christopher

I have a dataset with about 73,000 observations and close to 400 variables.  The observations are companies and their actively trading issues in a given year.

Some of these 73,000 observations are duplicates, but none of the observations actually match on all variables, so I am faced with the problem of which observation to drop.

Does anyone have a suggestion of how to compare the duplicate observations, consolidate the information each has in certain variables, and then keep one observations?

For example, consider the following...

+--------------------------------------------------------------------------------+
KEY      CUSIP     EXCHANGE   YEAR   RATIO   NOTES
011    03467110      NYSE     2007           Name change --> Acme Corp. in 2005
011    03467110               2007           
011    03467110      NYSE     2007    1:2    
+--------------------------------------------------------------------------------+

So, let's say I label these duplicates because it is the same company and issue in the same year.  What I now need is one observation in my dataset that looks like this...

+--------------------------------------------------------------------------------+
KEY      CUSIP     EXCHANGE   YEAR   RATIO   NOTES
011    03467110      NYSE     2007    1:2    Name change --> Acme Corp. in 2005
+--------------------------------------------------------------------------------+

As I said, the dataset is 73,000 obs and 400 vars.  Minimizing typing *and* minimizing errors/data loss is very important.


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index