Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Tirthankar Chakravarty <tirthankar.chakravarty@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: AW: levelsof problem? |
Date | Tue, 27 Jul 2010 16:43:08 +0530 |
Then this (cumbersome) script should do what you want: ********************************************* clear* input str2 country eu GE_F NL_F UK_F US_F US 0 1 1 1 0 US 0 1 1 1 0 NL 1 1 0 1 1 IN 0 1 1 1 1 GE 1 0 1 1 1 GE 1 0 1 1 1 US 0 1 1 1 0 US 0 1 1 1 0 US 0 1 1 1 0 PT 1 1 1 1 1 end g PT_F = 2 levelsof country if eu==1, local(lev) clean local lev2 foreach x of local lev { local lev2 " `lev2' `x'_F " } egen eutotal = rowtotal(`lev2') ********************************************* T 2010/7/27 joe j <joe.stata@gmail.com>: > Thanks, Martin. This is not quite what I wanted; The following command > is good enough. > egen eutotal=rowtotal(GE_F NL_F UK_F) > > The *_F variables need to be selected based on whether they belong to > eu or not (GE_F NL_F UK_F are selected, but not US_F) (The values of > _*F variables are not based on whether eu=1 or otherwise). But there > are many groupings, like eu, and a lot of countries, so I was looking > for an easy method to select. But it seems to me that manual selection > is the only choice. > > On Tue, Jul 27, 2010 at 11:39 AM, Martin Weiss <martin.weiss1@gmx.de> wrote: >> <> >> >> You could of course -replace- to the values you want based on the -if- >> qualifier after the fact: >> >> >> ************* >> egen eutotal=rowtotal(GE_F NL_F UK_F) >> replace eutotal=. if !eu >> ************* >> >> >> The reason that your second approach does not work is that Stata expects a >> -varlist- while you feed it >> >> `"GE"' `"NL"' `"PT"'_F >> >> which it cannot process. Type -ma di- to see the contents of your -macro-s. >> >> >> >> HTH >> Martin >> >> -----Ursprüngliche Nachricht----- >> Von: owner-statalist@hsphsun2.harvard.edu >> [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von joe j >> Gesendet: Dienstag, 27. Juli 2010 10:36 >> An: statalist@hsphsun2.harvard.edu >> Betreff: st: levelsof problem? >> >> >From a data set roughly like the following >> clear* >> input str2 country eu GE_F NL_F UK_F US_F >> US 0 1 1 1 0 >> US 0 1 1 1 0 >> NL 1 1 0 1 1 >> IN 0 1 1 1 1 >> GE 1 0 1 1 1 >> GE 1 0 1 1 1 >> US 0 1 1 1 0 >> US 0 1 1 1 0 >> US 0 1 1 1 0 >> PT 1 1 1 1 1 >> end >> >> I want to calculate the row sum of all *_F variables pertaining to eu >> countries (all excluding US_F): >> egen eutotal=rowtotal(GE_F NL_F UK_F) >> >> However, I would prefer to follow some rules in selecting the variables, >> like >> >> levels country if eu==1, local(lev) >> egen eutotal=rsum(`lev'_F) >> >> This doesn't work, however. Any pointers would be appreciated. >> >> Joe. >> * >> * 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/ > -- To every ω-consistent recursive class κ of formulae there correspond recursive class signs r, such that neither v Gen r nor Neg(v Gen r) belongs to Flg(κ) (where v is the free variable of r). * * 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/