Bookmark and Share

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

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

Re: st: foreach global macro not working with multiple macros

From   "Seed, Paul" <>
To   "" <>
Subject   Re: st: foreach global macro not working with multiple macros
Date   Thu, 3 Feb 2011 11:45:34 +0000

I re-wrote Eric's program to collect local macro names
beginning with c, rather than global.
Like Nick Cox, I use locals more often.

There is one non-trivial change that I thought was worth sharing.

*******  Grabbing list of all local macros that start with "c"
local cash "pocket asdf bank"
local check "bank"
local c3 "blah blah"
local c99 "test"
local z1 "ignore this one"

*******get names of all locals 


 cap log close _all
 log using "macros.txt", text replace
 macro li
 log close _all

 insheet using macros.txt, tab nonames
**first 6 and last 6 lines are from log, remove those: 
 drop in 1/6  // Eric dropped only 4 lines.  I am not sure why.
 drop in `=_N+1-6'/l  // Using _N-6 would drop 7 lines, 
// including one of the local macros!
**keep if first two letters are _c
keep if substr(v1, 1, 2)=="_c" 
*get names of all locals that start with "c"**
 split v1, p(": ") // splits v1 into v11 (the local name, before the colon) & v12 (the description, after the colon).
 keep v11
 replace v11 = substr(v1,2,.)  // Drop the initial underscore
 levelsof v11, loc(local_c) clean
 global local_c `local_c'
 di `"$local_c"'

foreach y of global local_c  {
display "`y'"

*   For searches and help try:

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