免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

基本有用的Stata代碼:數(shù)據(jù)清洗

 張春強2022 2024-01-17 發(fā)布于安徽
一、寫在前面

二、數(shù)據(jù)清洗代碼

  • 指定工作目錄

cd 文件地址 //cd是change directory的縮寫,將當前工作目錄更改為指定的目錄,如果數(shù)據(jù)都在該路徑下,后面的代碼就可以使用數(shù)據(jù)的相對路徑而不用絕對路徑
  • 打開日志文件并更新

log using 文件名.log,replace //日志文件會記錄所有代碼運行的結果
  • 導入數(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
  • 刪除行

drop in 1/n //刪除前n行drop in n //刪除第n行
  • 給變量貼標簽

label var id 股票代碼 //id的標簽是股票代碼
  • 變量命名

*單個命名rename 股票代碼 id //將股票代碼改為id*批量命名rename (var1 var2 var3)(newvar1 newvar2 newvar3)
  • N等分

*命令一: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)
  • 生成變量

gen Var=0  //生成值均為0的變量Vargen Varnew=Var1+Var2 //求兩個變量之和gen newvar=L.var //生成滯后變量gen newvar=F.var //生成前置變量gen newvar=abs(Var) //求絕對值egen Varmax=max(Var) //求最大值egen Varmin=min(Var) //求最小值egen Varmean=mean(Var) //求平均值egen Varmedian=median(Var) //求中位數(shù)egen Varsd=sd(Var) //求標準差egen Var50=pctile(Var),p(50) //求二分位數(shù)egen Var25=pctile(Var),p(25) //求四分位數(shù)egen y=rowtotal(x*) //對所有X開頭的變量求和
  • 生成虛擬變量

tab var,gen(newvar)
  • 生成年份變量

*年份格式為字符串型,如20170407gen year=real(substr(年份,1,4))  //提取年份字符串中的前四位 gen month=real(substr(年份,6,2))  //提取年份字符串中的后兩位 drop if month!=12 //剔除年份不是以12月份結尾的數(shù)據(jù)*年份格式為07apr2017型gen y=yofd(DateJoined)*年份格式為07/04/2017gen year=real(substr(年份,-4,.)) //提取后四位字符
  • 生成行業(yè)虛擬變量

tab Industry,gen(Indu) //生成行業(yè)虛擬變量,為了避免共線性,stata會自動刪掉一個虛擬變量 *有些文獻會單獨把制造業(yè)的細分行業(yè)也生成虛擬變量,就需要把前兩個字符提取出來,然后再生成行業(yè)虛擬變量gen Indu=Industryreplace 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)
 
  • 取對數(shù)與還原對數(shù)

gen lnX=log(X) //取對數(shù)形式gen X=exp(lnX) //還原對數(shù)形式
  • 計算除本公司外特定年份里行業(yè)其他樣本的均值

sort year industrybys 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和Var2keep Var1 Var2 //只保留變量Var1和Var2
  • 有條件的刪除數(shù)據(jù)

drop if year <2007 //表示刪除年份小于2007的數(shù)據(jù)drop if id =='10' //表示刪除id10的數(shù)據(jù)
  • 刪除重復的數(shù)據(jù)

duplicates drop id year,force // 刪除idyear重復的數(shù)據(jù)
  • 統(tǒng)一各變量的觀測數(shù)量

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'==.} *將所有缺失值替換為0mvencode _all, mv(0) override
  • 剔除ST/*ST/PT的樣本

drop if strmatch(Coname,'*ST*')drop if strmatch(Coname,'*PT*')
  • 剔除B股企業(yè)

gen B=0replace B=1 if strmatch(shortname,'*B*') //模糊匹配,當公司名稱含有B時,把B的0值替換為1drop if B==1 //剔除B值為1的數(shù)據(jù)
  • 剔除金融類企業(yè)

drop if strmatch(industry,'*J*')
  • 查看行業(yè)變更的公司

encode industry,gen(indu) bysort id: egen indumean = mean(indu)keep if indu != indumean
  • 數(shù)據(jù)類型的轉換

destring Var,replace //將字符串變量轉換為數(shù)值變量tostring var,replace //將字符串變量轉換為字符串變量destring var,replace force //將字符串變量轉換為數(shù)值變量,如果任何字符串值看起來不是數(shù)值,則將它們轉換為缺失值encode var, gen(var1) //字符串變量轉換為數(shù)值變量decode **var1**, gen(var) //帶標簽的分類變量轉換為字符串變量format var %10.3f  //將var的列寬固定為10,小數(shù)點后取三位
  • 生成殘差

predict e,residual //在回歸后用該代碼可生成殘差
  • 合并數(shù)據(jù)

*橫向合并merge 1:1 id year using 文件名.dta //將一個數(shù)據(jù)集合并到現(xiàn)有數(shù)據(jù)集的右側,1:1指的是1對1匹配,1:m為1對多匹配,m:1為多對1匹配;id year 對應的是匹配變量,id是股票代碼,year是年份;“文件名.dta”是匹配數(shù)據(jù)的名稱。drop if _merge!=3 //剔除沒有匹配上的數(shù)據(jù)drop _merge //剔除_merge*縱向合并append using 文件名.dta //將一個數(shù)據(jù)集合并到現(xiàn)有數(shù)據(jù)集的末尾,兩個數(shù)據(jù)集通常具有或部分具有相同的變量
  • 縮尾與截尾

*縮尾處理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è)來縮尾/截尾
  • 變量排序

order id year // 數(shù)據(jù)按照id,year的順序排列order id year x* //*表示x開頭的變量按照順序排列
  • 數(shù)據(jù)排序

*升序排列sort Varsort id year //從小到大排序,先按id排序,再按year排序*降序排列gsort Var
  • 聲明面板數(shù)據(jù)

xtset id year或者tsset id year
  • 查看數(shù)據(jù)

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軸名稱')
  • 保存/導出數(shù)據(jù)

*導出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ù)*注釋代碼后加//,//后面可以添加注釋,不影響代碼運行*代碼換行代碼后加///

?點擊下方關注南博吉吉?


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多