Stata命令整理
更新时间:2024-05-21 18:00:01 阅读量: 综合文库 文档下载
Stata 命令语句格式:
[byvarlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options] 1、[by varlist:]
*如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得, sort foreign //按国产车和进口车排序 . by foreign: sum price weight
*更简略的方式是把两个命令用一个组合命令来写。 . byforeign, sort: sum price weight
如果不想从小到大排序,而是从大到小排序,其命令为gsort。 . sort - price //按价格从高到低排序
. sort foreign -price /*先把国产车都排在前,进口车排在后面,然后在国产车内再按价格从大小到排序,在进口车内部,也按从大到小排序*/ 2、[=exp]赋值运算
. gen nprice=price+10 //生成新变量nprice,其值为 price+10
/*上面的命令 generate(略写为 gen) 生成一个新的变量,新变量的变量名为 nprice,新的价格在原价格的基础上均增加了 10 元。
. replace nprice=nprice-10 /*命令 replace 则直接改变原变量的赋值,nprice调减后与 price 变量取值相等*/
3、[if exp]条件表达式
. list make price if foreign==0
*只查看价格超过 1 万元的进口车(同时满足两个条件),则 . list make price if foreign==1 &price>10000
*查看价格超过 1 万元或者进口车(两个条件任满足一个) . listmake price if foreign==1 | price>10000 4、[in range]范围筛选 sum price in 1/5
注意“1/5”中,斜杠不是除号,而是从 1 到 5 的意思,即 1,2,3,4,5。
如果要计算前 10 台车中的国产车的平均价格,则可将范围和条件筛选联合使用。 . sumprice in 1/10 if foreign==0 5、[weight]加权
sum score [weight=num]其中,num为每个成绩所对应的人数 6、[, options]其他可选项
例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/ . sumscore, detail
. sum score, d //d 为 detail 的略写,两个命令完全等价 . list price, nohead//不要表头
Stata 数据类型转换 1、字符型转化成数值型
destring, replace //全部转换为数值型, replace 表示将原来的变量(值)更新
destringdate, replace ignore(“ ”)将字符型数据转换为数值型数据:去掉字符间的空格 destringprice percent, gen(price2 percent2) ignore(“$ ,%”)与 date 变量类似,变量 price 前面有美元符号,变量 percent 后有百分号,换为数值型时需要忽略这些非数值型字符 2、数值型转化为字符型
tostringyear day, replace //将年和日转化为字符型
gen date1=month+”/”+day+”/”+year //month day变为字符型后可以运算,将年月日构成一个新的日期变量
gen date2=date(date1,”mdy”) /* date()为日期函数,它以 1960 年 1 月 1日为第 0 天,计算从那天起直到括号中指定的某天 date1一共过了多少天。 ”mdy”指定 date1 的排列顺序,这里是按照月日年的顺序来表示日期。*/
数据显示格式
/*format 只控制数据的显示格式,并不改变内存中数据的大小。 */
变量的格式为s,表示右对齐,共 14 个字符,%为固定用法(字符变量跟s,数值变量跟g)
ormatstate %-14s // 该命令使stata的显示格式左对齐,14 前面多了个负号 format pop .0gc /*pop 的显示格式为 .0g,后面加上 c,则每三位数间 用逗号分开,c 为 comma 的意思.*/
format medage %8.1f //要求所有的medage都显示一位小数
format id .0f //对于编号,我们希望前面用零使得位数对齐,通过在前面补零,所有的 id 都成了5位数。
导入/导出其他格式数据 1、数据导入
insheet using 3origin.csv/txt, clear
insheet using 3origin.txt, double clear当数据中某个变量的位数特别长或者对导入数据的精度要求很高的时候,需要在该命令后面加 double 选项。 2、数据导出
outsheetusing myresult.asc, nonames如果不希望在第一行存储变量名,则可以使用nonames选项
outsheetusing myresult.asc, nonames replace如果文件已经存在,则需要使用 replace 选项
数据合并 1、 纵向合并
use male, clear //打开记录男生信息的数据文件 male
append using female //将记录女生信息的 female 文件追加到当前数据集中 save mydata1, replace 2、 横向合并
use economy,clear//打开经济学成绩数据文件 sort id //按学号排序
save economy, replace //重新保存一下
use student,c clear //打开学生基本信息数据文件 sort id //按学号排序
merge id using economy //以学号为关联,将学生的信息和成绩一一对应对接 tab _merge //显示对接情况,3 表示成功对接, 1 和 2 表示未成功对接 drop _merge //去掉标识对接是否成功变量_merge
Stata很多命令可单独使用,单独使用时,一般是对所有变量进行操作,等价于后面加上代表所有变量的_all
数据重整 1、长宽转换 宽:
长:
1)宽变长
use mywide, clear
reshape longmath economy, i(id name) j(year) //数据重整,宽变长 save mylong, replace 2)长变宽 reshape wide *或者
use mylong, clear
reshape widemath economy, i(id name) j(yearr) //数据重整,长变宽 save mywide2, replace
2、多列数据转为少数几列
有些数据集虽然有很多列,但实际上只有一个变量,利用stata转化成一项数据。
stack var1-var6, into(x) clearx是新生成变量的名称 drop _stack变量stack 记录观测值原来所在行数 3、数据转置 usemath,clear xpose, clear
变量运算:
Stata中,加( +)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符 将被连成一个字符。比如把”我爱” “STATA”合并在一起,命令为: . scalar a=”我爱” +“STATA”
一些运算函数:
comb(n,k) 从 n 中取 k 个的组合 fill() 自动填充数据 int(x) 取整
log10(x) 以 10 为底的对数 mod(x,y)求余数 round(x) 四舍五入
di round(3.345,.1) //四舍五入到十分位,结果为 3.3 di round(3.345,.01) //四舍五入到百分位,结果为 3.35 di round(335.1,10) //四舍五入到十位,结果为 340 sqrt(x) 开更号
substr(s,n1,n2) 从 S 的第 n1 个字符开始,截取 n2 个字符 word(s,n) 返回 s 的第 n 个字符 _n 当前观察值的序号 _N 共有多少观察值
gen y=sum(x) //求列累积和 egenz=sum(x) //求列总和
egenavgx=mean(x) //求列均值
egenbyte dxy= diff(x y) //当x与y相等时,differ取0,若不相等为1
分离变量值 clear
input str15 x \\\
\\end
gen a=strpos(x,\ //计算出*所在的位数 gen b=substr(x,1,a-1) //取*前面的字符 gen c=substr(x,a+1,.)//取*后面的字符
stata中,系统缺失值大于任何一个数据,因此在生成分类哑变量时: genagegrp2=(age>=65) if age<.生成的数据中,将缺失值排除在外
生成分组变量: clear
set obs 100 //设定 100 个观察值
gen age=_n //生成一个假设的年龄变量 age,依次取 1, 2, …, 100
recode age (min/30=1) (30/60=2) (60/max=3),gen(agegrp) /*生成新的分组变量agegrp,当年龄age在30及以下时取值为1,30到60为2,60以上为3*/
分组运算:
by x, sort: gen n1=_n根据x的不同,生成n1变量对不同类的x计数 by hhid,sort: egenmage=mean(age) //根据不同类别求平均年龄
bysorthhid (age): gen nid1=_n //括号中的变量age 只排序,不参于分组。 bysorthhid age: gen nid2=_n // hhid和ag e 都既用来参与排序也分组
encode country,gen(country1) 将文本变量转化为数值变量 display5+9 显示计算结果
sum price weight 描述统计:求价格和重量的观察值个数、平均值、标准差、最小值和最大值
scatter price weight 绘出价格和重量的散点图 line price weight, sort 绘出价格和重量的折线图 clear 清除内存中原有内容
cd d:/stata9 在打开数据之前,先定位数据的位置 use 打开STATA 格式的数据文件 set obs 5 //设定 5 个观察值 dir查看当前路径下有哪些文件
save mydata//保存数据,数据文件名为mydata
save mydata, replace如果同一文件夹下已经存有mydata.dta,而你又要再次执行 save mydata时
edit 编辑数据
log 将输出结果存放入结果文件
gen id=_n //生成一个新变量id,根据观测值排列顺序从上到下取值依次为123…… replace id=9842 in 3第三个观测的id值改变
compress //压缩数据,使之在不损失任何信息的前提下占用空间最小 erase mydata1.dta删除文件,一定要带上后缀名。
报告数据
describe 总体展示变量信息
codebook 展示数据库中的每个变量情况(有多少缺失值,主要分位数,区间) list 列示内存中的数据
count 报告共有多少观察值 inspect 报告变量的分布 table 数据列表 tabulate 联列表
append 将有相同结果的数据纵向拼接(观察值拼接) merge 将两个数据文件横向拼接 xpose数据转置 reshape
generate 生成新的数据 egen生成新的数据 rename 变量重命令 drop 删除变量或观察值 keep 保留变量或观察值
sort 对观察值按从小到大顺序重新排列 encode 数值型数据转换为字符型数据 decode 字符型数据转换为数值型数据 order 变量顺序的重新排列 by 分类操作
正在阅读:
Stata命令整理05-21
美术《茂密的花》优秀课例09-26
zhang20140312D高职学前教育专业人才培养模式探析06-06
WTC使用方法 - 图文12-18
法宣在线_4.2《中华人民共和国水污染防治法》练习题及答案06-03
第五课 门字框 方框儿05-17
03-统计热力学基础04-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 命令
- 整理
- Stata
- 高新区热力管道 - 图文
- 义务教育阶段新课标课程设置及课时安排(1) 2
- 有机教案
- 总有一种期待
- 中学建设项目工程可行性研究报告
- 滨医专科《基础护理学》学习指导书
- 人教版小学四年级《品德与社会》下册教案全集2
- 推荐评审表
- 非金融企业债务融资工具承销协议模板(标准版本)
- 4.6 整式的加减
- 牛津版五年级下册U3 U4知识点
- 谈六年级下册“ 习惯篇” 的教学
- 2013年秋四科联赛五校联考八年级语文试卷 - 图文
- 学写常用应用文 习题集
- 人教版2017年七年级下册历史复习提纲(zxls_201701020085405)
- 06年闵行区物理调研试卷
- 尔雅通老子论语精读学期考试答案
- 完整升级版人民路1号地块可行性分析报告 - 图文
- 2号隧道施工组织措施
- 沪教版语文四年级下册阅读训练试题五