Statalist


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

Re: st: RE: help with encode


From   sjsamuels@gmail.com
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: RE: help with encode
Date   Fri, 24 Jul 2009 08:58:12 -0400

Miranda, you misunderstand what the label() option does in -encode- .
As the -help- clearly indicates, the label option either creates a new
label or, if there is already a label of the same name,  adds numeric
codes to that label.

In your case, you already had label 'fish', with values 0,1.  Your
encode statement added values 2 & 3  to that label and gave these to
the new variable fish1.

Aside: In the world outside of regression with indicator variables,
"1" & "2" is the natural way of referring to two choices on a
questionnaire or in a list.

-Steve

On Fri, Jul 24, 2009 at 7:28 AM, Miranda Kim<mk@mrc.soton.ac.uk> wrote:
> Thank you for your input. As you say, there are many different ways to make
> this work and so I have bypassed using encode.
> I am grateful for the many suggestions, and I apologize if my initial
> question was not laid out clearly enough.
> Many thanks,
> Miranda
> ps: here is what I got trying to use encode:
> . tab1 fish
>
> -> tabulation of fish
>      fish |      Freq.     Percent        Cum.
> ------------+-----------------------------------
>         C |         56       50.45       50.45
>         S |         55       49.55      100.00
> ------------+-----------------------------------
>     Total |        111      100.00
>
> . desc fish
>
>             storage  display     value
> variable name   type   format      label      variable label
> --------------------------------------------------------------------------------------
> fish            str1   %1s
> . label def fish 0 "Control" 1 "Salmon"
>
> . encode fish, gen(fish1) label(fish)
>
> . tab1 fish1, nolabel
>
> -> tabulation of fish1
>     fish1 |      Freq.     Percent        Cum.
> ------------+-----------------------------------
>         2 |         56       50.45       50.45
>         3 |         55       49.55      100.00
> ------------+-----------------------------------
>     Total |        111      100.00
>
> Michael Hanson wrote:
>>
>> If that really is the situation you're in -- all encoded values are 2's
>> and 3's -- then why not simply linearly transform the encoded variables to
>> the values that you want?  That is, type:
>>
>> replace gender = gender - 2
>>
>> (Subtract 1 if you had 1's and 2's as mentioned in your original post.)
>>
>> However, I suspect something else is going on.  My expectation is that you
>> have more than just two string values ("m" and "f") in your series.  Can you
>> provide to the list the output of -table female-?  I suspect that if you try
>> Nick's -tab ...- command shown below, you would also find unexpected values.
>>
>> However, these are all conjectures.  You would likely resolve your
>> situation much more quickly (and waste fewer people's time on the list in
>> the process) if you followed the guidance clearly laid out in the Statalist
>> FAQ:
>>
>> 3.3 Stata references in your question
>> Say exactly what you typed and exactly what Stata typed (or did) in
>> response. N.B. exactly!
>>
>> Why not at least show us what actually happened?  In this case, copy and
>> paste from the results window the *exact* -encode- command and resulting
>> Stata output.  Then copy and past whatever command led you to conclude that
>> you were getting 2's and 3's, and the *exact* and *complete* output from
>> that command.  (In consideration to Statalist readers, please don't provide
>> us with a lengthy -list- output.  Use -table- instead, as suggested above.)
>>
>> Hope this helps,
>> Mike
>>
>>
>> On Jul 24, 2009, at 4:09 AM, Miranda Kim wrote:
>>
>>> I tried this but couldn't make it work, as it then automatically encodes
>>> the variables with 2's and 3's...
>>>
>>> Nick Cox wrote:
>>>>
>>>> In addition to other answers the direct answer to the second question is
>>>> "Yes":
>>>> label def female 0 "m" 1 "f" encode gender, gen(female) label(female)
>>>>
>>>> It would no harm to check on any missings:
>>>> tab gender if !inlist(female, 0, 1)
>>>> Nick n.j.cox@durham.ac.uk
>>>> Miranda Kim
>>>>
>>>> How can I efficiently convert string variables (such as gender with
>>>> values 'f' 'm') into binary 0/1 variables?
>>>> Can I fiddle with encode so that it codes 0/1 instead of 1/2?
>>
>> *
>> *   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/
>>
>>
>
> *
> *   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/
>



-- 
Steven Samuels
sjsamuels@gmail.com
18 Cantine's Island
Saugerties NY 12477
USA
845-246-0774

*
*   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   |   What's new   |   Site index