最近在處理一個比較大型的數據庫,發現有的時候需要做一些重復操作。如,將所有的缺失值均命名為-999,將某量表各個題目的值均減1,將一系列變量命名以y字母結尾,將一系列變量進行重新賦值,做1個因變量與10個自變量的卡方檢驗。如果一個個做的話,可能我已經無法活着寫帖子了叭。。。
但是在某科的啟發下,作為Stata小白的我,找了一些學習資料,真的發現省了不少事兒。話不多說,送上代碼!
①foreach v of var a1 a2 a3 a4 a5 a6 a7 a8 a9 a10{
anova `v' b
}
*此代碼意為將a1~a10分別與變量b進行單因素方差分析,一鍵即可完成。
*注意v兩邊的引號哦!找不到可以直接copy~
*紅色部分可以修改
*{}兩個位置不可隨意更改,}需另起一行。
②foreach v of var a1 a2 a3 a4 a5 a6 a7 a8 a9 a10{
tab y `v', chi2 taub gamma
}
*10個卡方檢驗3秒鍾。
③ foreach v of var a1 a2 a3 a4 a5 a6 a7 a8 a9 a10{
drop if `v' ==.
}
*a1~a10凡是有缺失值的都刪掉啦
④foreach v of var a1 a2 a3 a4 a5 a6 a7 a8 a9 a10{
replace `v' =-999 if `v' == .| `v' == .d | `v' == .r
}
*別說10個變量的缺失值(./.d/.r)啦,100個也秒秒鍾都把你補齊!
例子太多,不勝枚舉。循環是個好東西,趁早學會,事半功倍~