Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: Understanding Factor variables - is order significant ?


From   Austin Nichols <austinnichols@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Understanding Factor variables - is order significant ?
Date   Thu, 27 May 2010 11:10:31 -0400

Al--
I think you meant to use -encode- in your example, since you may not
label string variables (http://www.stata.com/search.cgi?query=181).
You could also just use sort order to establish the order of your new
variable, if setting up the sort order is simpler in some applications
(this is a fairly simple way to handle a very large number of string
levels):

clear
input str20 svar
"Low"
"Medium Low"
"Medium"
"Medium High"
"High"
end
forv i=1/`=_N' {
la def o `i' "`=svar[`i']'", modify
}
encode svar, g(nvar) label(o)
list
list, nol

On Thu, May 27, 2010 at 10:52 AM, Feiveson, Alan H. (JSC-SK311)
<alan.h.feiveson@nasa.gov> wrote:
> Rich - I agree.
>
> OK - How about an "order" option on encode:
>
> encode stringvar,order(Low Medium High)
>
>
> HA!
>
>
> This would replace doing
>
> label define level 1 "Low" 2 "Medium" 3 "High"
> label values stringvar level
>
> (maybe a trivial amount of extra work in this example, but not if you had a list of 20 levels or so and had to list them all  with numbers and double quotes around each one)
>
>
> Al F.
>
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Richard Williams
> Sent: Thursday, May 27, 2010 9:44 AM
> To: statalist@hsphsun2.harvard.edu
> Subject: RE: st: Understanding Factor variables - is order significant ?
>
> At 10:38 AM 5/27/2010, Feiveson, Alan H. (JSC-SK311) wrote:
>>The trouble with -encode- is that it puts the levels in alphabetical
>>order. So in the L, M, H case you would get H = 1, L = 2, M = 3. To
>>get around this you would have to define a label by hand and assign
>>it to the string variable.
>>
>>Al F.
>
> True, but as Nick points out you would have the same problem with
> factor variables.  One way or another you have to do a little extra
> work to get the codes in the order you want if they aren't in that
> order already.

*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index