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: RE: AW: recode 9, 99, 999,..., into missing


From   Steve Samuels <sjsamuels@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: RE: AW: recode 9, 99, 999,..., into missing
Date   Sun, 16 May 2010 13:36:02 -0400

A potential problem with depending on -sum- , -r(max)-, and the number
of recorded digits  is that the highest recorded value of a potential
three digit response could be "99" or "099", and this would be
mistakenly set to missing. Unlikely, yes, but if it is possible, I
don't see any way around partitioning such variables by  the number of
_possible_  digits and using -mvdecode-, as Tony suggests.

Steve

On Sun, May 16, 2010 at 11:13 AM, Lachenbruch, Peter
<Peter.Lachenbruch@oregonstate.edu> wrote:
> Maybe I'm missing the point, but couldn't mvdecode handle this with three calls?
> mvdecode var3,mv(9/.)
> You may want to consider special missings for notanswered and refuse to answer and etc.
>
> ________________________________________
> From: owner-statalist@hsphsun2.harvard.edu [owner-statalist@hsphsun2.harvard.edu] On Behalf Of Martin Weiss [martin.weiss1@gmx.de]
> Sent: Sunday, May 16, 2010 8:10 AM
> To: statalist@hsphsun2.harvard.edu
> Subject: st: AW: recode 9, 99, 999,..., into missing
>
> <>
>
> Not sure whether this is totally foolproof, try it yourself :-) -mod()- just
> has to part of the solution, I think:
>
>
> *************
> clear*
>
> inp byte(var1 var2) int(var3 var4)
> 1 1 1 1
> 2 2 2 2
> 3 3 3 3
> 4 8 99 999
> 5 9 100 1000
> 6 10 101 1001
> 7 11 150 5000
> 9 12 999 9999
> end
>
> foreach var of varlist *{
>        sum `var', mean
>        local notanswered = cond((mod(r(max),9)==0),r(max),.)
>        if !mi(`notanswered') replace `var'=. if `var'==`notanswered'
> }
>
> list, noo
> *************
>
>
>
> HTH
> Martin
>
>
> -----Ursprüngliche Nachricht-----
> Von: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Amanda Fu
> Gesendet: Sonntag, 16. Mai 2010 16:57
> An: statalist@hsphsun2.harvard.edu
> Betreff: st: recode 9, 99, 999,..., into missing
>
> Hi all,
>
> I have seen a couple of times that for some data sets the "not
> answered" is coded as 9, 99, 999...... and the number of digit of 9
> depends on the number of digit of the maximum  value of the variable.
> It is convenient to analyze if recoding them into missing. But the
> problem is, for some variables, 9 or 99 might be the real values. I
> was wondering if there is any good way to deal with this kind of
> recoding.
> (In the past we have a discussion thread of using the value label
> information such as "not answered"  to deal with this question. What I
> am asking here is what if there are no such value labels ?)
>
> For example, here are three variables :
> var1 takes values: {1,2,3,4,9}
>     where   9 means "not answered"
> var2 takes values: {1,2,3,......8,9,10,11,12,99}
> where 99 means " "not answered"
> var3 takes values: {1,2,3,...99,100,101,..,150,999}           where
> 999 means " "not answered"
> var4 takes values: {1,2,3,...999,1000,1001,..5000,9999} where 9999
> means " "not answered"
>
> Now I am thinking to recode int he following way:
>
> foreach var of varlist *  {
> sum `var'
> replace `var'=. if r(max)<9       & `var'==9
> replace `var'=. if r(max)<99     & r(max)>9       & `var'==99
> replace `var'=. if r(max)<999   & r(max)>99    & `var'==999
> replace `var'=. if r(max)<9999 & r(max)>999 & `var'==9999
> }
>
> I would like to hear if anyone has better method instead of this.
> Thanks for your time!
>
> Best wishes,
> Amanda
> *
> *   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/
> *
> *   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
Voice: 845-246-0774
Fax:    206-202-4783

*
*   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