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, 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 <>
Subject   Re: st: Understanding Factor variables - is order significant ?
Date   Thu, 27 May 2010 11:10:31 -0400

I think you meant to use -encode- in your example, since you may not
label string variables (
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

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

On Thu, May 27, 2010 at 10:52 AM, Feiveson, Alan H. (JSC-SK311)
<> 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: [] On Behalf Of Richard Williams
> Sent: Thursday, May 27, 2010 9:44 AM
> To:
> 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:

© Copyright 1996–2015 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index