Stata Tips: global和local的快速学习
(2013-05-03 21:56:32)分类: 经济学家们 |
For example,
The input : : : is equivalent to : : :
global a "myvar"
gen $a = oldvar gen myvar = oldvar
gen a = oldvar gen a = oldvar
local a "myvar"
gen `a' = oldvar gen myvar = oldvar
gen a = oldvar gen a = oldvar
global a "newvar"
global i = 2
gen $a$i = oldvar gen newvar2 = oldvar
local a "newvar"
local i = 2
gen `a'`i' = oldvar gen newvar2 = oldvar
global b1 "newvar"
global i=1
gen ${b$i} = oldvar gen newvar = oldvar
local b1 "newvar"
local i=1
gen `b`i'' = oldvar gen newvar = oldvar
global b1 "newvar"
global a "b"
global i = 1
gen ${$a$i} = oldvar gen newvar = oldvar
local b1 "newvar"
local a "b"
local i = 1
gen ``a'`i'' = oldvar gen newvar = oldvar
Global and local macro names
What we say next is an exceedingly fine point: global macro names that begin with an underscore
are really local macros; this is why local macro names can have only 31 characters. The local
command is formally defined as equivalent to global . Thus the following are equivalent:
local x global x
local i=1 global i=1
local name "Bill" global name "Bill"
local fmt : format myvar global fmt : format myvar
local 3 `2' global 3 $ 2
The input : : : is equivalent to : : :
global a "myvar"
gen $a = oldvar gen myvar = oldvar
gen a = oldvar gen a = oldvar
local a "myvar"
gen `a' = oldvar gen myvar = oldvar
gen a = oldvar gen a = oldvar
global a "newvar"
global i = 2
gen $a$i = oldvar gen newvar2 = oldvar
local a "newvar"
local i = 2
gen `a'`i' = oldvar gen newvar2 = oldvar
global b1 "newvar"
global i=1
gen ${b$i} = oldvar gen newvar = oldvar
local b1 "newvar"
local i=1
gen `b`i'' = oldvar gen newvar = oldvar
global b1 "newvar"
global a "b"
global i = 1
gen ${$a$i} = oldvar gen newvar = oldvar
local b1 "newvar"
local a "b"
local i = 1
gen ``a'`i'' = oldvar gen newvar = oldvar
Global and local macro names
What we say next is an exceedingly fine point: global macro names that begin with an underscore
are really local macros; this is why local macro names can have only 31 characters. The local
command is formally defined as equivalent to global . Thus the following are equivalent:
local x global x
local i=1 global i=1
local name "Bill" global name "Bill"
local fmt : format myvar global fmt : format myvar
local 3 `2' global 3 $ 2