Stata 我无法理解的状态循环

Stata 我无法理解的状态循环,stata,Stata,我了解到,要将小写变量名更改为大写变量,我需要执行以下操作: foreach var of varlist * { rename `var' `=upper("`var'")' } 但我不明白这到底是怎么回事 首先,重命名不需要=来更改变量名 其次,我明白我需要用“和”来拥抱var 但是“和”是什么意思呢 =uppervar' 你不需要那样做。您不需要循环,也不需要这种语法。考虑 . sysuse auto, clear (1978 Automobile Data) . ds make

我了解到,要将小写变量名更改为大写变量,我需要执行以下操作:

foreach var of varlist * {
  rename `var' `=upper("`var'")'
}
但我不明白这到底是怎么回事

首先,重命名不需要=来更改变量名

其次,我明白我需要用“和”来拥抱var

但是“和”是什么意思呢

=uppervar'


你不需要那样做。您不需要循环,也不需要这种语法。考虑

. sysuse auto, clear
(1978 Automobile Data)

. ds
make          mpg           headroom      weight        turn          gear_ratio
price         rep78         trunk         length        displacement  foreign

. rename *, upper

. ds
MAKE          MPG           HEADROOM      WEIGHT        TURN          GEAR_RATIO
PRICE         REP78         TRUNK         LENGTH        DISPLACEMENT  FOREIGN
否则你会对这个问题感到困惑

`= ' 
因为事实上,这与重命名无关。该语法强制Stata动态计算标量表达式,以便rename只看到该表达式的结果。在您的例子中,字符串表达式

upper("`var'") 
生成本地宏变量中包含的变量名的大写版本

此语法记录在帮助宏和[p]宏中,例如。 p、 13作为一种展开算子

尽管如此,所有变量名的大写形式都很糟糕