2016-12-05 58 views
2

我需要在我的數據集中構建一些條件變量。循環內部替換命令

我這樣做是這樣的:

gen varx=0 

replace varx=1 if resp_127=="A" | resp_128=="A"|resp_129=="A" |/// 
resp_130=="A" | resp_131=="A" | resp_132=="A" ... 

我想知道是否有某種方式來投放條件的循環,所以我不會需要到n再寫信給resp_127resp_再次。我只想編寫自動將條件從resp_127改爲resp_140的循環。

+1

請注意,您有許多相同種類的響應變量,有可能'重塑長'將是一個好主意。 –

+0

我同意尼克在這個。 – 2016-12-06 02:21:33

回答

1

像這樣的東西應該做你想做的。

generate varx = 0 
forvalues num = 127/140 { 
    replace varx=1 if resp_`num'=="A" 
    } 
+1

這個例子指定了14個變量,William的代碼對於那種數字非常有用,特別是對於更多。對於幾個變量,請注意替代'gen varx = inlist(「A」,resp_127,resp_128,resp_129)''。 –

+0

我開始使用這種技術,並及時發現'inlist'限於10個字符變量。然而,'inlist'最多可以使用255個數字變量,當變量名稱不像本例中那樣系統化時,這很有效。 – 2016-12-06 02:19:44