将之前工作中用到的一些命令进行如下汇总,还有些后添加的,以后再续:
*解码
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
网友评论