Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

RE: st: Creating macro varlist for loop - different outcomes with different methods?


From   Felix Acker <[email protected]>
To   "'[email protected]'" <[email protected]>
Subject   RE: st: Creating macro varlist for loop - different outcomes with different methods?
Date   Mon, 23 Dec 2013 05:38:36 +0000

Many thanks wanhaiyou, that did the trick.

Playing with your code for a bit, I noticed that it is a syntax issue.
The following code (yours) works:

foreach aa of varlist x1-z {
tab `aa', sort
} 

But this code would not work:

local MacroListContainer x1-z 
foreach aa in `MacroListContainer' {
tab `aa', sort,
}

No idea why that is the case, but happy for the solution. Thanks again.

Best from Melbourne,
Felix

Dr Felix Acker
Senior Project Officer
Knowledge and Environments for Health
Victorian Health Promotion Foundation (VicHealth)
15-31 Pelham Street  Carlton  Victoria  3053
 

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of wanhaiyou
Sent: Monday, 23 December 2013 4:10 PM
To: [email protected]
Subject: Re: st: Creating macro varlist for loop - different outcomes with different methods?

Felix Acker 
Try:

clear
set obs 10
forv i=1/10 {
gen x`i'=uniform()
}
gen y=uniform()
gen z=uniform()

foreach aa of varlist x1-z {
tab `aa', sort
}

Bests,
wanhaiyou
Hunan University


> -----原始邮件-----
> 发件人: "Felix Acker" <[email protected]>
> 发送时间: 2013-12-23 13:04:16 (星期一)
> 收件人: "[email protected]" <[email protected]>
> 抄送: 
> 主题: st: Creating macro varlist for loop - different outcomes with different methods?
> 
> Hello All,
> 
> I have encountered a problem in running a loop on a varlist. My dataset consists of 112 variables, nearly all of them have unique names. I would like to assign them to macros in blocks, for example variable 15 (name = weight) to variable 20 (name = abstinence). I would then like to run a loop on this varlist, using a very basic command such as 'tab' and am expecting separate tables for each variable. When I individually type the variable names for the varlist: 
> 
> local TableItems Weight LGA TypeOfWork PosInLocal Aware Abstinence 
> foreach x in `TableItems' { tab `x', sort }
> 
> This works just fine. 
> However, when I use the hyphen method to create the varlist, the variables seem to be bound different, in that I get an error message for more than two variables, and a two-way table if my varlist consists of two variables only.
> 
> local TableItems Weight-Abstinence
> foreach x in `TableItems' {
> tab `x', sort
> }
> 
> Would anyone happen to know why this occurs, and how to get around it? In the case of 5 variables, it is easy enough to type them out, but it surely should be possible to do this more efficiently.
> 
> Thanks for your help and best from Melbourne, Felix Acker
> 
> Dr Felix Acker
> Senior Project Officer
> Knowledge and Environments for Health
> Victorian Health Promotion Foundation (VicHealth)
> 15-31 Pelham Street  Carlton  Victoria  3053


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/

IMPORTANT - This email, including all attachments, may be confidential. If you are not the intended recipient, you must not disclose, distribute, copy or use the information contained in this email or attachments. Any confidentiality or privilege is not waived or lost because this email has been sent to you in error. If you have received it in error, please let us know by reply email, or telephone us on (613) 96671333, delete it from your system and destroy any copies. Any representations or opinions expressed in this email are those of the individual sender, and not necessarily those of the Victorian Health Promotion Foundation.


SPAM DISCLAIMER - VicHealth utilises spam filtering software on our email server. Users acknowledge that while every effort is made to ensure the filtering service operates optimally, it is possible that the SPAM filtering software may inadvertently block an otherwise legitimate email. If you have not received a response to an email you’ve sent after 2 days, we recommend you call our office on (61 3) 9667 1333 to confirm receipt.


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index