美文网首页stata小小白Stata
常用stata命令集锦

常用stata命令集锦

作者: Hobbit的理查德 | 来源:发表于2020-02-10 14:19 被阅读0次

    将之前工作中用到的一些命令进行如下汇总,还有些后添加的,以后再续:

    *解码
    unicode encoding set gb18030
    unicode analyze *.dta
    unicode translate *.dta,invalid(mark)
    
    *修改工作目录
    cd D:\1Ressia
    
    *数据调用
    use XXX,clear
    
    *日志记录
    log using process.log,replace
    log close
    
    *浏览数据
    browse
    
    *编辑数据
    edit
    
    *编码表
    codebook
    
    *新建do文件
    doedit
    
    *变量描述
    d variabl0358-variabl0362
    
    *重命名
    rename WeChat WeChat_uibe
    
    *新增变量
    gen uni_prov=university
    
    *变量命名
    label var uni_prov "高校所在省份"
    
    *变量移动
    order uni_prov,after(university)
    
    *变量清洗
    replace uni_prov="安徽" if university=="安徽新华学院"
    
    *去除字符里的换行
    replace uni_name=subinstr(uni_name,char(10),"",.)
    *去除字符里的空格
    replace uni_name=subinstr(uni_name," ","",.)
    
    *数值型重新编码
    recode Q73 (1=5)(2=4)(4=2)(5=1)
    
    *字符串转数值,可加force强制转换(慎重使用)
    destring uni_region,replace
    
    *数值转字符串,可加force强制转换(慎重使用)
    tostring uni_region,replace
    
    *含值标签的值转为文本型
    decode P2Q8D1,gen(P2Q8D1new)
    
    *增加值标签
    label define uni_region 1"京津沪" 2"东部" 3"中部" 4"西部" 5"东北"
    label value uni_region uni_region
    
    *删除值标签
    label drop uni_region
    
    *复制值标签
    label copy uni_region
    
    *生成暂时变量(不会出现新变量)
    tempvar mean_Zscore1 sd_Zscore1
    
    *分层计算(含函数)
    bysort RE_P2Q1C RE_P2Q1B:egen `mean_Zscore1'=mean(RE_P2Q1DR1)
    
    *频率等分成组
    xtile g_income=RE_P7Q3,nq(5)
    
    *纵向合并,可加force强制合并
    append using 999-online_forappend
    
    *横向合并,可加force强制合并
    merge 1:1 flid using BJUT_xiaoqu
    
    *保存文件
    save 999-online_benke,replace
    
    *重复值报告
    duplicates report StudentID
    
    *标记重复值
    duplicates tag flid,gen(idtag)
    
    *排序
    sort flid logtime
    
    *正向+反向排序
    gsort flid -logtime
    
    *删除数据
    drop if inlist(idtag,1,2,5,14)&t!=1
    
    *保留数据case
    keep if inlist(idtag,1,2,5,14)&t!=1
    
    *字符串时间转为可计算的数值型,得到微秒,转成分钟除以60000,详见help datetime
    gen double starttime=clock(StartTime,"YMDhms")
    
    *可恢复操作
    preserve
    
    *抽样
    sample 308 if AFFILICATION_UNIVERSITY==1&Q24F1==1& RE_Q24BNEW_XLCC_BK==1,count
    restore
    
    *多选题拆分
    gen BK_P1Q2BR2S1=1 if regexm(BK_P1Q2BR2,"1")==1
    gen BK_P1Q2BR2S2=1 if regexm(BK_P1Q2BR2,"2")==1
    gen BK_P1Q2BR2S3=1 if regexm(BK_P1Q2BR2,"3")==1
    gen BK_P1Q2BR2S4=1 if regexm(BK_P1Q2BR2,"4")==1
    replace BK_P1Q2BR2S1=0 if BK_P1Q2BR2!=""&BK_P1Q2BR2S1!=1
    replace BK_P1Q2BR2S2=0 if BK_P1Q2BR2!=""&BK_P1Q2BR2S2!=1
    replace BK_P1Q2BR2S3=0 if BK_P1Q2BR2!=""&BK_P1Q2BR2S3!=1
    replace BK_P1Q2BR2S4=0 if BK_P1Q2BR2!=""&BK_P1Q2BR2S4!=1
    
    *排序题
    forvalues i = 1(1)13 {
    gen BSU_P3Q2BAS`i'=5  if BSU_P3Q2B1==`i'
    }
    forvalues i = 1(1)13 {
    replace BSU_P3Q2BAS`i'=3  if BSU_P3Q2B2==`i'
    }
    forvalues i = 1(1)13 {
    replace BSU_P3Q2BAS`i'=1  if BSU_P3Q2B3==`i'
    }
    
    forvalues i = 1(1)13 {
    replace BSU_P3Q2BAS`i'=0  if BSU_P3Q2BAS`i'==. &(BSU_P3Q2B1!=.|BSU_P3Q2B2!=.|BSU_P3Q2B3!=.)
    }
    
    order BSU_P3Q2BAS1, after(BSU_P3Q2B3)
    forvalues i =2(1)13 {
    local t=`i'-1
    order BSU_P3Q2BAS`i',after(BSU_P3Q2BAS`t')
    }
    label var BSU_P3Q2BAS1 "(1)通识性知识与技能"
    label var BSU_P3Q2BAS2 "(2)专业性知识与技能"
    label var BSU_P3Q2BAS3 "(3)学习能力"
    label var BSU_P3Q2BAS4 "(4)创新能力"
    label var BSU_P3Q2BAS5 "(5)沟通与表达能力" 
    label var BSU_P3Q2BAS6 "(6)组织与管理能力"
    label var BSU_P3Q2BAS7 "(7)执行能力"
    label var BSU_P3Q2BAS8 "(8)自我管理能力"
    label var BSU_P3Q2BAS9 "(9)职业适应能力"
    label var BSU_P3Q2BAS10 "(10)职业规划能力"
    label var BSU_P3Q2BAS11 "(11)专项能力及运动技术水平"
    label var BSU_P3Q2BAS12 "(12)教学实践能力"
    label var BSU_P3Q2BAS13 "(13)科研能力"
    
    *变量拆分
    split password,parse(,) gen(pw_school)
    
    *循环(数字),可加条件
    forvalues i=1(1)7{
    replace Q15AS`i'=. if Q15AS`i'==0
    }
    
    
    *循环(变量)
    foreach x of varlist option_urban-option_wage_benefit{
    label values `x' selectionvalues
    }
    
    *频率
    table A B
    tab A
    tab1 A B
    tab self_dis P3Q16,row chi2
    
    *变量虚拟
    tab x,gen(y)
    
    *多重效应(需要先安装mrtab)
    ssc install mrtab
    mrtab RE_P1Q15S1-RE_P1Q15S5
    
    *分组统计
    tabstat RE_P1Q4 RE_P1Q5,statistics(mean sd) by(P1Q3)
    
    *描述统计
    sum teachingtype1 teachingtype2 teachingtype3
    
    *皮尔逊相关
    pwcorr teachingtype1 teachingtype2 teachingtype3 P3Q18S1 P3Q18S2 P3Q18S3,sig star(0.05)
    
    *线性回归
    reg P3Q18S1 teachingtype1 teachingtype2 teachingtype3
    
    *T检验
    ttest P3Q18S1,by(teaching1)
    
    *单因素方差分析及事后检验
    oneway P4Q2O1 g_income2,bonferroni 
    
    *方差分析(含交互)及简单效应
    anova meanedutime Year gender Year#gender if education==2&discipline_g2==3
    contrast gender@Year
    
    *暂元
    global control "city fatheredutime motheredutime i.familyincome_g UNI_TYPE_2 excellence certificate_english leader ib3.discipline_g2"
    **Logistic回归
    logistic jiuye sex i.Year $control if education==2&(discipline_g2==3|discipline_g2==4),or robust
    logit jiuye sex i.Year $control if education==2&(discipline_g2==3|discipline_g2==4),or robust
    *基于似无相关模型SUR的检验
    forvalues i=2005(4)2013 {
    logistic luoshi sex $control if education==2&(discipline_g2==3|discipline_g2==4)&Year==`i',or 
    est store luoshi`i'
    }
    suest luoshi2005 luoshi2009 luoshi2013
    
    foreach x of var sex city fatheredutime motheredutime UNI_TYPE_2 excellence certificate_english leader {
    forvalues i = 2005(4)2009 {
    local t=`i'+4
    test [luoshi`i'_luoshi]`x'=[luoshi`t'_luoshi]`x'
    }
    }
    
    sw logit quality samenum longestrate relativefminute ShortTimeClickCount mode allmode IPdup allguai guainum,pr(0.05) or
    *模型评价
    firthfit
    estat gof
    estat ic   
    lroc
    predict pprob
    somersd quality pprob
    
    *根据某个变量拆分excel文件
    levelsof yxmc,local(level1)
    foreach x of local level1 {
    preserve
    keep if yxmc=="`x'"
    export excel using "D:\1Ressia\excel\分院校-`x'.xlsx", firstrow(varlabels) nolabel
    restore
    }
    *根据某个变量拆分excel文件-变量标签
    levelsof re_P4Q12,local(xiaoxue)
    foreach x of local xiaoxue {
    
    export excel using "D:\1Ressia\小学-`:label (re_P4Q12) `x''.xlsx" if re_P4Q12==`x',firstrow(varlabels) replace
    
    }
    
    
    *频率表导出到excel,需要先安装tabout
    tabout  Q6  using basicinfo.xls,replace c(fre col) f(0 2)
    *多选题导出
    logout,   save(basicinfo) excel replace:mrtab  Q9S1-Q9S11
    
    *频率表批量导入excel
    foreach i in Q20 Q21 Q22 Q23 Q40 Q41 Q49 Q50 Q51 Q52 Q60 Q61 Q62 Q63{
    tabout `i' using cleantext.log,append c(fre col) f(0 2)
    }
    
    *内部一致性
    alpha
    
    *因子分析:
    factor P2Q18O1 P2Q18O2 P2Q18O3 P2Q18O4 P2Q18O5 P2Q18O6 P2Q18O7 P2Q18O8
    screeplot
    scoreplot
    loadingplot
    rotate
    
    *正态检验
    swilk var1
    
    *统计量再计算
    scalar qir=r(p75)-r(p25)
    dis qir
    

    相关文章

      网友评论

        本文标题:常用stata命令集锦

        本文链接:https://www.haomeiwen.com/subject/ltuaxhtx.html