最近在学习Stata,刚刚从头学起,发现里面的命令超级多,就边学习边记录下来,留给自己看,同时也分享给大家。可能有的地方我理解的也不对,如果有错误,请帮我指出,欢迎大家一起探讨。高手 / 大神 / 大佬 / 可以忽略啦…(⊙_⊙;)…,当然也可以教教我……
图比较多,用流量要注意哦。
[TOC]
Stata笔记
0.pwd
显示当前所在目录。
pwd
1.clear
清除内存数据。数据都是存入内存来计算的,所以在输入大量数据之前,要先清除内存中的数据来释放空间。
删除的不光包括数据,还有变量,以及Data Editor 中的数据。(就是删除所有数据,什么都不留)
不影响已经存在硬盘上的数据。(只删除内存中的所有数据)
具体使用方法在下文中有具体例子。
2.input
手动输入数据。
可以分五次输入,也可以直接复制到Command。
input x y x
50 30 20
20 30 50
20 52 60
end
3.save
保存数据。
此项如果保存在C盘可能因为权限不够而报错。换到其他盘符即可。
save data_name[,replace]
save 名称[,如果之前已经有这个名称,则替换(覆盖)。]
4.use
使用、导入数据。
use data_name[,clear]
use "file_path"[,clear]
use url[,clear]
use 名称[,清除。]
5.sysuse
导入软件安装时自带的数据时用。
sysuse auto,clear
导入汽车数据。
6.d/des/desc/describe
显示数据变量信息。(名称、类型等等)
describe[,detail]
7.sum & return list & ereturn list
sum price weight turn
(以刚刚导入的汽车价格数据为例,price weight turn 为变量名称)
显示一些相关信息。(观察值个数、平均数、最大最小值等等)
return list
return 可以简写为ret
返回更多信息(包括sum没有显示的)
ereturn list
ereturn 可以简写为eret
返回更详细的信息。
e:estimate,估计
8.reg
回归分析。
reg price weight turn foreign
reg 变量名
9.clear results
清除计算结果。就是刚才的return/ereturn list 的结果。
但是变量并没有被清除。
再次输入return/ereturn list会发现已经没有任何输出。
clear results
10.matrix
创建矩阵。
matrix A = I(5)
创建名称为A的5*5的矩阵。
mat list A
显示A矩阵。
mat dir
显示有多少矩阵。
clear matrix
清除矩阵。再次查看矩阵,一经发现没有了。
11.type
以下是tab键为分隔符的数据。
查看文件原始内容形式(.txt)。
12.insheet
导入文件内容。一定要说明后缀名。
insheet using data.txt,clear
13.rename
修改变量名称。
rename old_var_name new_var_name
在导入的时候直接修改变量名称,同时也是批量(一定要对应)。不用一条条的修改。
insheet a p w t using data.txt,clear
14.infile
以下是space键(空格)为分隔符的数据。
直接使用insheet 导入无法识别所有变量,将其视为一个变量。
如果非要用insheet导入,在最后加上delimiter选项。就可以正常导入了。
insheet using datas.txt,clear delimiter(" ")
使用infile可以直接导入以空格为分隔符的数据。而不用指定delimiter。同时可以指定变量名。
infile p w t using datas.txt,clear
包含字符串的情况下:
直接导入会出现错误。
指定变量名的情况下,也会出现数据遗漏,文字都变成“·”。
infile str20 v1 int v2 int v3 int v4 str10 v5 using strdata.txt,clear
str:字符串类型(文字)
int:数值类型(数字)
指定变量类型后,可以顺利导入。
以逗号为分隔符的数据和上面一样。
原始数据:
导入:
infile str20 v1 int v2 int v3 int v4 str10 v5 using ddata.txt,clear
15.browse
查看数据表内容。
browse
16.xmluse
导入excel文件数据。
旧版方式
xmluse data.xlsx doctype(excel) clear firstrow -
本条命令是错误的
提示无法识别这种文件类型。
xmluse data.xml doctype(excel) clear firstrow
需要将excel另存为xml格式。然后再导入,就可以了。
doctype:指定文件类型,firstrow:第一行作为变量。
新版方式(Stata MP15.0)
import excel using data.xlsx,clear
直接导入excel,不用更改格式。
17.compress
精简优化资料的存储结构。(自动检测变量大小)(自适应)
compress
可以看到优化结果。同时browse可以发现name变量的宽度变小。
18.xpose
对调数据(转置)。
原始数据是横向的。
insheet using xpose.txt,clear
导入数据。
数据是横向的。
xpose,clear
要附加clear选项。
19.tsset
设定变量。
tsset data
设定时间变量。
如图,使用系统数据,然后设定date为时间变量。
结果显示:
20.outfile
导出数据。空格为分隔符。
outfile using data_auto, wide replace
wide:解除每行80字符的限制,使每个观察值占一行。
导出部分变量。
outfile make-price foreign using data_auto, wide replace
21.outsheet
导出数据。Tab键为分隔符。
outsheet make-mpg using data_outsheet,replace
22.xmlsave
导出数据。XML格式。
xmlsave data_xmlsave,doctype(excel) replace
23.变量
1. 命名规则:
(1)英文字母,数字,下划线组成,长度不超过32。
(2)不能以数字开头。
(3)区分大小写。
(4)尽量不要以_开头(虽然允许)。
2. 查看变量
ds [,has(type int)]
显示所有变量中类型为int的。
ds [,not(type byte)]
显示所有变量中类型不是byte的。
ds [,detail]
作用同des。
3. 查看/更改类型
list gear_ratio in 1/5
显示gear_ratio变量前五个。
d gear_ratio
显示gear_ratio变量信息。
下图中,%6.2f:%是定义格式前缀,6是整个变量最长占到6位,2是保留两位小数,f是fix简写,固定的格式(不论什么数据都以这种格式显示)。
recast int gear_ratio,force
❤ 更改gear_ratio变量类型为int。force强制更改。小数信息会丢失。
❤ 仍然显示小数是因为显示格式没有改变。
3. list
list price[,sep(int)]
显示price变量和值。sep:separate 每隔多少行划一道分割线。默认为5。0就是没有分割线。
list price in 1/30,sep(0)
显示price前30个值。sep(0)没有分割线。
sort rep78
以rep78进行排序。
list make price rep78 in 1/20,sepby(rep78)
显示make price rep78前20个,并以rep78的数据划分割线。
list price weight length ,noobs
noobs,不显示结果前面的序号。方便复制。
list price weight length ,noobs clean
clean,去除边框。仅显示数据。
24.format
定义显示格式(显示格式化)。
str18:字符串变量,占18空格
%-18s:靠左边
%18s:靠右边
%~18s:居中
%8.0g:
%6.2f:%是定义格式前缀,6是整个变量最长占到6位,2是保留两位小数,f是fix简写,固定的格式(不论什么数据都以这种格式显示)。
format price %6.1f
数据占6位,显示小数点后1位。
format gear_ratio %6.4f
数据占6位,显示小数点后4位。
执行上面两条命令后,结果显示:
25.label
为数据添加标签。
为样本添加标签(也就是整个数据)。
label [var var_name] data string
示例:
原始:
更改后:
为变量添加标签。
label var var_name [data] string
var:变量。var_name:变量名。
类别标签定义(数字-文字对应表)。
label define label_name
定义标签名
label values var_name label_name
将变量值与标签对应起来。
比如 1 代表 "好",2 "较好",3 "中",4 "较差",5 代表 "差"。
可以发现,1234等数字已经变为所对应的文字。
label dir
显示有多少标签。
label list
显示标签及其所对应的值。
labelbook 推荐使用
显示标签详细信息。
label drop label_name
删除数据标签。
可以看到repair标签已经被删除。
26.note(s)
添加注释(附加文字说明)。
note:Xiaowang:这是一个注释,为整份数据附加文字说明。
为整个数据添加附加说明。
notes
查看注释。
note weight:Xiaowang:这是一个注释,为变量附加文字说明。
为weight变量添加附加说明。
note drop weight
删除变量weight的注释。
先写这么多,下次继续更新。
网友评论