STATA命令

cd d:\statashu
//导入指定文件,原表第一行作为变量名,所有变量都是字符串型
import excel "D:\statashu\期中考试学生名单.xlsx", sheet("Sheet1") firstrow all string
//修改变量名
rename 姓名 name
rename 考号 kaohao
rename 班级 banji
//判断指定变量是否唯一:如果有提示则不唯一 ,如果没有提示则说明相应的变量观测值都不重复
isid name
//variable name does not uniquely identify the observations
//r(459);
isid kaohao
//增加新变量名name_1,如果name有重复的则值为1,否则为0,给重复的加标记
duplicates tag name, generate(name_1)
//Duplicates in terms of name
//如果变量banji有重复的,则新产生变量filter,对于相同的banji值的数据从1到最后一条编号
bys banji:gen filter=_n
keep if filter<5

 

//截取name最右边的一个汉字作为新变量的值
gen name_3=substr(name,-3,.)

sort 证券代码 date
by 证券代码 date:gen daycount = _N //对证券代码和date相同的观测:则产生计数变量:_N
by date 证券代码: gen set=_n //对证券代码和date相同的观测:产生编号变量_n:从1到 最后
*每一个id只保留一个记录
sort 证券代码
by 证券代码: gen filter=_n //对相同id的数据从1到最后一条编号
keep if filter == 1 //只保留第一条
save one_record //保存数据到本地

*这一段代码可以删除重复的观测
sort date 证券代码
by date 证券代码: gen set=_n //证券代码和date相同则编号:从1到 最后
keep if set==1 //date 和 证券代码相同的观测,只保留了一条记录
drop set
save mystockdata_dropreplicate,replace

posted @ 2023-02-22 16:24  myrj  阅读(399)  评论(0编辑  收藏  举报