黑体为命令,斜体为变量名或文件名):对于字符型变量,需要指明其为字符型 并指明最大的字符长度。 ? clear //清空内存
? input id str10 name economy //输入变量名,特别注意姓名前的str10. ? 1 John 40 //录入第一个学生的学号和成绩 ? 2 Chris 80 //录入第二个学生的学号和成绩 ? 3 Jack 90 ? 4 Huang 70 ? 5 Tom 53
? end //录入数据结束
? save economy //保存数据到当前路径,文件名为economy 3.5.3 程序操作
(1)打开do file editor,键入以下内容: clear //清空内存
input id str10 name economy //输入变量名,特别注意姓名前的str10. 1 John 40 //录入第一个学生的学号和成绩 2 Chris 80 3 Jack 90 4 Huang 70 5 Tom 53
end //录入数据结束
save economy,erplace //保存数据到当前路径,文件名为economy (2)保存程序文件为mydo (3)点击
,执行后得到数学成绩
3.6 导入其他格式数据:insheet
经常会遇到的情形是:我们有其他格式的数据,需要导入到STATA 中进行 分析,建议大家此时将其他格式数据复制到分析数据的文件目录下,然后直接用 STATA 的导入数据文件命令导入原始数据,用程序模式进行处理,然后导出处 理结果。这样做的最大好处是:既不会破坏最原始的数据文件,又使我们的每一 步数据处理和分析过程都有迹可循。 3.6.1 insheet 命令
在本书所附数据文件中找到“3origin.xls”数据,将其打开并另存为
“3origin.csv”,(另存时请注意要选择“保存类型”下拉单,选择CSV(逗号分 隔)这一项)。然后在STATA 命令窗口中用下述命令导入 . insheet using 3origin.csv, clear
也可以先将“3origin.xls”数据打开并另存为“3origin.txt”,然后用下面的命 令导入
. insheet using 3origin.txt, clear
当数据中某个变量的位数特别长或者对导入数据的精度要求很高的时候,需 要在该命令后面加double 选项。 . insheet using 3origin.txt, double clear 3.6.2 infile 命令
对于“3origin.txt”或“3origin.csv”,还可用infile 命令导入STATA,此时需 要先指出变量名。尤其要注意,当变量为字符型时,要先指明。 infile id str10 name gender minority economy math using origin.txt, clear 或者
infile id str10 name gender minority economy math using origin.csv, clear 3.6.3 infix 命令
还有一种标准化的数据,每个变量的位数是确定的,不足时,前面用0 补齐, 以origin.数据的后面四个变量为例,其数据格式为
114068 128052 029076 024390 037096 115385 028536 129565
如果遇到这种数据格式,需要对照数据说明导入数据,相应的命令为: infix gender 1 minority 2 economy 3-4 math 5-6 using origin.csv, clear 其中的数字为对应的数字位数。 3.6.4 outsheet 命令
与前述三个命令相反,有时我们需要将STATA 数据导出为其他格式数据, 比如文本格式或后缀为 acs 的格式:此时需要使用outsheet 命令实现,该命令的
基本格式如下。
outsheet using myresult.txt outsheet using myresult.asc
此时建立的文件myresult.txt 第一行为变量名,第2~6 行为变量值。变量列间用 Tab 键分隔。如果不希望在第一行存储变量名,则可以使用nonames 选项。如果
文件已经存在,则需要使用replace 选项,相应的命令分别为。 outsheet using myresult.asc, nonames
outsheet using myresult.asc, nonames replace 3.6.4 使用transfer 软件
Transfer 软件专用于转换不同格式的数据文件,使用起来非常方便。只需要 在input File Type 栏中选择需要转化的原数据文件类型,然后定位打开需要转化 的原数据文件。再选定输出文件类型,指定输出文件的存放位置和文件名。最后 点击transfer 按钮。数据便被转化。
该软件可在 http://www.pinggu.org/bbs上下载试用,不过做正式工作,建议采 用正版软件。
3.7 标签数据:label
要掌握的命令:为了创建一个完整的文件,要掌握下面的命令。
以上命令可以通过help command 查看到具体的命令格式。 *3.7.1 变量重命令:rename
/*采用直接复制粘贴法,将原始数据粘入stata。
然后退出数据编辑器,先将该数据保存起来,文件名为 3origin.dta。*/ save 3origin, replace
/* 新粘入的变量自动命令为var1, var2,...var6,为使变量容易理解和记忆,
要将变量重新命名,命令为name。在此之前,可以先用一个describ 命令看看数 据情况*/
use 3origin, clear
des //查看数据集的整体情况,注意变量名为var1-var6 renpfix var v //将所有var 开头的变量名改为以v 开头
rename v1 id //将第一个变量重新命令为id rename v2 name rename v3 gender rename v4 minority rename v5 economy rename v6 math
des //再次查看数据集的整体情况,注意变量名已改变 *3.7.2 标签文件:label data
/* 为避免时间太长,忘记变量的含义,我们可以用label 命令来标记。该命令可 以用来标记数据文件,如将文件取名为“2007 年秋5632 班学习成绩单” */ label data “2007 年秋5632 班学习成绩单”
* 在文件处理过程中加注说明,命令为notes note: 2007 年9 月6 日由任我行创建该数据
* 下一次打开数据,要查看创建和数据处理的说明时,直接键入 note
*3.7.3 标签变量:label var
*也可以用label 命令来标记变量,如将id 标记为“学号” label var id “学号”
label var name “姓名”
label var gender “性别 1=男 2=女” label var minority “民族”
*3.7.4 标签变量值:label define 和label values
*还可以标记变量的取值。注意要按以下两步来操作: label define genderlb 1 \男\女\
list //注意此时gender 变量显示的值为0 或1 label values gender genderlb //该命令仅仅是显示的变化,实质不变 list //注意此时gender 变量显示的值为男或女 label define minoritylb 1\汉族\少数民族\
label values minority minoritylb list
*3.7.5 标签增加与修改:add 和modify
/* 定义完汉族和少数民族后发现还有些学生的民族是不知道的(原始值为 3), 则*/
label define minoritylb 3 ” 不知道”
*然而结果窗口却显示出如下错误信息, label minoritylb already defined
* 因为minoritylb 已经存在并被定义,我们需要加上选项,add label define minoritylb 3 “不知道”, add list
label define minoritylb 3 “don’t know”, add
/*试图将“不知道”改为英文“don’t know”,再次显示错误 *invalid attempt to modify label
因为3 已被定义,这次不是增加而是修改,所以选项为,modify*/ label define minoritylb 3 “don’t know”, modify list
*3.7.6 标签显示与删除:dir 和drop label dir //显示标签
label list //显示标签的赋值含义
list //注意到minority 显示的是\汉族\、\少数民族\和“don’t know”
label drop minoritylb //删除标签 label dir //再显示标签
list //注意到minority 显示的是1,2,3 *3.7.7 保存和删除数据文件:save 和erase
compress //压缩数据,使之在不损失任何信息的前提下占用空间最小 save mydata //保存数据,数据文件名为mydata
*如果同一文件夹下已经存有mydata.dta,而你又要再次执行save mydata 时, 系统会出现提示 save mydata
*该提示表示数据已经存在,此时我们可以换名保存 save mydata1
*或者将原文件覆盖,方法是加上replace 选项 save mydata, replace *删除文件,erase erase mydata1.dta
*注意:删除文件时一定要带上后缀名。