Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: SAS like command?


From   n j cox <n.j.cox@durham.ac.uk>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: SAS like command?
Date   Thu, 18 Aug 2005 14:03:55 +0100

A comment on

bysort a b c: egen tabulation = sum(1)

I have used -egen, sum(1)- myself in examples, but it also
involves Stata interpreting about 100 lines, when one
will do the same job:

bysort a b c : gen tabcount = _N

On the original problem, I would suggest

egen group = group(a b c), label
tabstat n, by(group) stat(N sum)

for interactive use. For a program, given that
properly labelled output is essential for
the problem, I would probably use the same -egen-
call, a few -generate-s and a -tabdisp- for the display.

Nick
n.j.cox@durham.ac.uk


>>> James Muller

Here's a rough procedure:

Start with your dataset. Choose the variables you want to keep, suppose these are variables a, b and c
. bysort a b c: egen tabulation = sum(1)
. duplicates drop
Then you should have the below table as your new dataset.

Here's a simple example program that will simply output the data. If you're going to use this frequently, save it as tabNway.ado and put it in your adopath.

program define tabNway
preserve
keep `*'
sort`*'
by `*': egen tabcount = sum(1)
duplicates drop
list
restore
end

In your case you would use input 'tabNway a b c'. I didn't use a tempvar because that gives a meaningless heading in the list. To get your other heading you can edit the program.

*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/




© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index