二、數(shù)據(jù)清洗代碼
cd 文件地址 //cd是change directory的縮寫,將當前工作目錄更改為指定的目錄,如果數(shù)據(jù)都在該路徑下,后面的代碼就可以使用數(shù)據(jù)的相對路徑而不用絕對路徑
*導入excel格式文件 import excel using 文件名.xlsx,firstrow clear //文件名.xlsx就是相對路徑,前面沒有cd的話,就要用文件名.xlsx的完整文件地址,像這樣:'C:\Users\10405\Desktop\文件名.xlsx' *導入txt格式文件 insheet using 文件名.txt,clear *導入csv格式文件 import delimited 文件名.csv, clear *導入stata格式文件 use 文件名.dta,clear *導入系統(tǒng)數(shù)據(jù) sysuse 文件名.data
label var id 股票代碼 //id的標簽是股票代碼
*命令一: egen type = cut(Var), group(N) //將變量Var從小到大分N類生成變量type *命令二: sort Var //升序排序 generate type = group(N) *命令三: xtile Newvar = Var, nq(N) //將變量Var從小到大分N類生成變量Newvar *按照年份或者行業(yè)生成等分 bys year: egen Newvar=xtile(Var), nq(N)
tab var,gen(newvar)
tab Industry,gen(Indu) //生成行業(yè)虛擬變量,為了避免共線性,stata會自動刪掉一個虛擬變量 *有些文獻會單獨把制造業(yè)的細分行業(yè)也生成虛擬變量,就需要把前兩個字符提取出來,然后再生成行業(yè)虛擬變量 gen Indu=Industry replace Indu = substr(Industry,1,1) if substr(Industry,1,1)!='C' replace Indu = substr(Industry,1,2) if substr(Industry,1,1)=='C' encode industry,gen(indu)
gen lnX=log(X) //取對數(shù)形式 gen X=exp(lnX) //還原對數(shù)形式
sort year industry bys year industry: egen sumX=sum(X) //計算X總和 bys year industry: gen N=_N // 計算觀測值 gen OtherX=(sumX-X)/(N-1)
keep if strmatch(var, '*數(shù)字化*') //保留變量var中包含“數(shù)字化”的數(shù)據(jù)
misstable sum var1 var2 var3
drop if missing(var1)
drop Var1 Var2 //刪除變量Var1和Var2 keep Var1 Var2 //只保留變量Var1和Var2
drop if year <2007 //表示刪除年份小于2007的數(shù)據(jù) drop if id =='10' //表示刪除id為10的數(shù)據(jù)
duplicates drop id year,force // 刪除id與year重復的數(shù)據(jù)
egen miss=rmiss(var1 var2 var3) keep if miss==0 //這個操作可以使各變量的觀測數(shù)量保持統(tǒng)一
*單個變量補缺失值 replace var=某個數(shù)值 if var==. *多個變量同時補缺失值 foreach i in var1 var2 var3 { replace `i'=0 if `i'==. } *將所有缺失值替換為0 mvencode _all, mv(0) override
drop if strmatch(Coname,'*ST*') drop if strmatch(Coname,'*PT*')
*縮尾處理 winsor2 Var, replace cuts(1 99) //winsor2默認在上下1%的水平上縮尾,小于1%百分位數(shù)的數(shù)值會被1%分位數(shù)替代,99%同理;replace后面的cuts(1 99)可以省略,也可以對縮尾的上下限做調(diào)整;replace的意思是不改變原變量名稱; *截尾處理 winsor2 Var, replace cuts(1 99) trim //將小于1%百分位數(shù)和大于99%百分位數(shù)的數(shù)值替換為缺失值. *可以在replace后面加by(year)或者by(industry),按照年份或者行業(yè)來縮尾/截尾
*升序排列 sort Var sort id year //從小到大排序,先按id排序,再按year排序 *降序排列 gsort Var
xtset id year 或者 tsset id year
codebook //顯示變量數(shù)值分布情況 inspect var //在codebook命令的基礎上進一步繪制出直方圖 sum Var //描述性統(tǒng)計 by byvars: sum var //按照分組對變量進行概括 tab Var //變量頻數(shù) des Var //報告變量存儲的類型、格式和標簽 list Var if Var>0 //顯示滿足Var>0的數(shù)據(jù) duplicates list var //列出重復數(shù)據(jù)
collapse (mean) Var, by(year) line Var year, ytitle('Y軸名稱')
*導出sata格式 save 文件名.dta, replace *導出excel格式 export excel 文件名.xlsx, firstrow(var) replace *導出csv格式 export delimited using '文件名', replace
log close
*運行代碼快捷鍵 Ctrl + D //選中代碼,同時按Ctrl + D鍵 *計數(shù) count if var==0 //計算var等于0的個數(shù) *注釋 代碼后加//,//后面可以添加注釋,不影響代碼運行 *代碼換行 代碼后加/// ?點擊下方關注南博吉吉? |
|