2017-03-06 101 views
0

我瞭解到,改小寫變量名大寫的變量,我需要做到以下幾點:Stata的循環,我無法理解

foreach var of varlist * { 
    rename `var' `=upper("`var'")' 
} 

但我無法理解如何能真正發揮作用。

首先,rename不需要=來更改變量名稱。

其次,我明白,我需要接受var與'和 '

不過這是什麼'和' 的意思是周邊

=upper("var'")

回答

1

你不需要那樣做。你不需要循環,你不需要這個語法。考慮

. 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 

否則,你在

`= ' 

不解,因爲確實這是無關rename。該語法迫使Stata在運行中評估標量表達式,以便rename僅查看該表達式的結果。在你的情況下,字符串表達式

upper("`var'") 

產生包含在當地的宏var變量名的大寫版本。

該語法記錄在help macro[P] macro(例如 in this version p.13)作爲一種擴展算子。

所有這一切,所有的變量名稱大寫是可怕的風格....