[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
st: Re: Counting Unique Values by Year
----- Original Message -----
From: "Jennifer S. Earl" <firstname.lastname@example.org>
Sent: Sunday, June 01, 2003 7:34 PM
Subject: st: Counting Unique Values by Year
> I have a data set with cases spread out over a number of years. I have a
> numeric variable called CLMS. I want to create a new variable UNIQCLMS
> equals the number of unique values that CLMS took on each year.
> I have thought of some very long-winded ways to do this, such as creating
> counter using a lag-comparison and then harvesting the last value of this
> counter, but it seems like it should be easier. In particular, Stata
> already calculates the number of unique values in lots of operations,
> including INSPECT (e.g., "by year: inspect clms" will produce the number
> unique values for CLMS, unless that number exceeds 99, but it won't write
> that value out to another variable as far as I know), and the number of
> unique values should also equal the number of rows produced using "by
> tab clms".
> So, I am hoping someone might be able to think of a quick and/or elegant
> way to get Stata to produce a new variable, UNIQCLMS that contains the
> number of unique values that CLMS takes on in each year. If I could dream
> up a new egen command, the format would be something like:
> by year: egen uniqclm=unique(CLMS)
> Any thoughts would be appreciated.
Thanks to Nick Cox there is such a command: -nvals- , part of the egenmore
package will return the number distinct values as a variable. Something
egen uniqclm = nvals(CLMS) , by(year)
You also might find the discussion in the FAQ "How do I compute the number
of distinct observations?"
Hope this helps,
* For searches and help try: