Michael Oakes <[email protected]> wrote:
> > Hoping this isn't too obvious, but I cannot figure out
> how to fill-in rows
> > for response values that do not appear in my data but do exist
> > hypothetically.
>
> > Imagine a variable, call it q5, that has possible
> responses 1, 2, 3, and 4;
> > let it be a simple Likert scale for example. The trouble
> is if survey
> > respondents only endorse/check values of 3 or 4, then my
> table will look
> > like this
>
> > . tab q5, nolab
>
> > |
> > q5 |
> > | Freq. Percent Cum.
> > ------------+-----------------------------------
> > 3 | 14 24.14 24.14
> > 4 | 44 75.86 100.00
> > ------------+-----------------------------------
> > Total | 58 100.00
>
> > But what I want is (something like) this, which I made
> the "hard-way" via
> > cut/paste
>
> > q5 |
> > | Freq. Percent Cum.
> > ------------+-----------------------------------
> > 1 | 0 0.0 0.0
> > 2 | 0 0.0 0.0
> > 3 | 14 24.14 24.14
> > 4 | 44 75.86 100.00
> > ------------+-----------------------------------
> > Total | 58 100.00
>
> > In this example the hypothetical values of 1 and 2 are
> represented, which is
> > nice if I want to apply value labels and such for presentation.
>
> > I've looked at -tabcond- and a few other adaptations but
> cannot find what I
> > want -- I do not seem to understand -tabcond- if that
> would do the trick.
>
> > Solutions?
Shannon Driver
>
> Though this may not be the most elegant code, here is one
> way to get the
> results that I believe you want. I'm sure it could be
> expanded to allow more
> statistics and options.
>
> program tabrange
< snip >
> end
>
> Here are the results you get:
>
> . tabrange q5, range(1/4)
>
> +-------------------------------+
> | q5 Freq Percent Cum |
> |-------------------------------|
> | 1 0 0.00 0.00 |
> | 2 0 0.00 0.00 |
> | 3 14 24.14 24.14 |
> | 4 44 75.86 100.00 |
> |-------------------------------|
> | Sum 58 100.00 |
> +-------------------------------+
>
> . tabrange q5, range(1 3 4 8)
>
> +-------------------------------+
> | q5 Freq Percent Cum |
> |-------------------------------|
> | 1 0 0.00 0.00 |
> | 3 14 24.14 24.14 |
> | 4 44 75.86 100.00 |
> | 8 0 0.00 100.00 |
> |-------------------------------|
> | Sum 58 100.00 |
> +-------------------------------+
>
> . tabrange q5, range(14)
> No observations for q5 in given range.
-tabcond- (SSC) can be used to produce an awkward and
indeed only partial solution
for Michael's example, but only because the number of
possible values contemplated is not more than 5. It
is quite likely that that need not be true for real
examples.
-tabrange- from Shannon is a much better solution for
of producing the results required. Note that -tabrange-
could be a little slow for very large data sets. While
it is still in an early stage, I'd like to float
a possible name change. The connotations of "range"
are strong here, and possibly misleading. Perhaps "values"?
*
* 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/