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 at the end of May, and its replacement, statalist.org is already up and running.


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

AW: st: findname question


From   "Martin Weiss" <martin.weiss1@gmx.de>
To   <statalist@hsphsun2.harvard.edu>
Subject   AW: st: findname question
Date   Tue, 6 Apr 2010 15:01:38 +0200

<> 


Let`s add that -ssc d findname- is a user-written command by Nick Cox, and a
very recent addition to ssc. 


If Eduardo wants to -replace- all missings with zero, regardless of variable
type, he can of course say:


*************
clear*
set obs 10
gen x=1
replace x=. in 2/3
gen y=2
gen z=3
replace z=. in 3/5

foreach var of varlist _all{
	di in r "Now at variable `var'"
	replace `var'=0 if `var'==.
}
*************



HTH
Martin

-----Ursprüngliche Nachricht-----
Von: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Neil Shephard
Gesendet: Dienstag, 6. April 2010 14:51
An: statalist@hsphsun2.harvard.edu
Betreff: Re: st: findname question

On Tue, Apr 6, 2010 at 12:13 PM, Eduardo Nunez <enunezb@gmail.com> wrote:
> Dear statalisters,
>
> I had a dataset where binary variables (1/0) were presented as (1/.);
> I tried to use findname to identify those variables,
> in order to replace missing values with zeroes.
>
----------------------------------------------------------------------------
---------------------------
>
> findname, all(@==1|@==.) local(varname) varwidth(30)
> foreach varname of varlist `varname' {
>       replace `varname'=0 if `varname'==.
> }
>
>
----------------------------------------------------------------------------
---------------------------
> However it seems that the name of these variables weren't stored in a
> local macro `varname'.
> Is it that what the option local(macname) is supposed to do?
>

I've never used -findname- before, but you've maybe made a mistake by
using the same name for the local macro in your loop as you did for
the one you are storing the variables that match in your call to
-findname-.  Try the following...

findname, all(@==1|@==.) local(varname) varwidth(30)
di "`varname'"   // Check that there are some variables that match
your criteria!
foreach x of varlist `varname' {
      replace `x'=0 if `x'==.
}

Neil


-- 
"... no scientific worker has a fixed level of significance at which
from year to year, and in all circumstances, he rejects hypotheses; he
rather gives his mind to each particular case in the light of his
evidence and his ideas." - Sir Ronald A. Fisher (1956)

Email - nshephard@gmail.com
Website - http://slack.ser.man.ac.uk/
Photos - http://www.flickr.com/photos/slackline/

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


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