.des //第三列显示了数据的格式display format storage display value
variable name type format label variable label state str14 s State
region int %8.0g cenreg Census region pop long .0g Population medage float %9.0g Median age
*注意到, stata 变量的格式为s,表示右对齐,共14 个字符,%为固定用法 .list in 1/4 //注意不同的显示格式:均为右对齐 state region pop medage
------------------------------------------ 1. Alabama South 3893888 29.3 2. Alaska West 401851 26.1 3. Arizona West 2718215 29.2 4. Arkansas South 2286435 30.6
.format state %-14s // 该命令使stata 的显示格式左对齐,14 前面多了个负号 .list in 1/4 //注意不同的显示格式,state 现在左对齐了 +------------------------------------------+ state region pop medage
------------------------------------------ 1. Alabama South 3893888 29.3 2. Alaska West 401851 26.1 3. Arizona West 2718215 29.2 4. Arkansas South 2286435 30.6
.format region %-8.0g / *region 变量看起来是字符型变量,但实际上为
数据型,它也可以左对齐,同样是加一个负号.
.list in 1/4 //注意region 现在左对齐了
.format pop .0gc /*pop 的显示格式为.0g,后面加上c,则每三位数间
用逗号分开,c 为comma 的意思.*/
.list in 1/4 //结果加上了逗号,但是第五个观察值没有任何变化 state region pop medage
------------------------------------------- 1. Alabama South 3,893,888 29.3 2. Alaska West 401,851 26.1 3. Arizona West 2,718,215 29.2 4. Arkansas South 2,286,435 30.6 5. California West 23667902 29.9
*因为这个数太大,加逗号将超过11 位数,我们可以先把总的位数增加 .format pop .0gc //把pop 显示总长度数增加到12 位 .list in 5 //现在所有的pop 都按逗号分开了 5. California West 23,667,902 29.9
.format medage %8.1f //要求所有的medage 都显示一位小数 .list in 1/4
state region pop medage
-------------------------------------------- 1. Alabama South 3,893,888 29.3 2. Alaska West 401,851 26.1 3. Arizona West 2,718,215 29.2 4. Arkansas South 2,286,435 30.6
.gen id=_n //生成一个新变量id,取值依次为1,2,3 .replace id=9842 in 3 //将id 的第三个变量替换为9842 .list in 1/3
state region pop medage id
-------------------------------------------- 1. Alabama South 3893888 29.3 1 2. Alaska West 401851 26.1 2
3. Arizona West 2718215 29.2 9842
.format id .0f //对于编号,我们希望前面用零使得位数对齐 .list in 1/3 //注意到通过在前面补零,所有的id 都成了5 位数。 state region pop medage id
-------------------------------------------------- 1. Alabama South 3893888 29.3 00001 2. Alaska West 401851 26.1 00002 3. Arizona West 2718215 29.2 09842
3.5 在STATA 中直接录入数据:input
3.5.1 菜单式操作
任务:按学号录入五个学生的经济学成绩
id economy 1 40 2 80 3 90 4 70 5 53
操作:(1)点击图标列中录入另五个成绩
>>在打开的数据表格第一列中录入五个姓名>>在第二
双击 var1 弹出对话框>>将变量改名为id>>在label 中写入学号>>退出弹出窗口; 双击 var2 弹出对话框>>将变量改名为name>>在label 中写入姓名>>关闭数据编辑器
(2)点击图标保存数据>>给数据命令为student >>退出
在建立数据文件后,如果没有存盘,这个文件即是一个“临时的”数据文件,它将随着退出STATA 系统时而消失。当数据文件被存储在后,它将成为一个“永久性”的数据文件,用户可以在以后经常使用它而不必重新建立之。
3.5.2 命令操作
任务:按学号录入五个学生的学号和姓名
id name economy 1 John 40 2 Chris 80 3 Jack 90 4 Huang 43 5 Tom 70
操作:在command 窗口中键入(注:前面的点号不必健入,每完成一行按回车键,
黑体为命令,斜体为变量名或文件名):对于字符型变量,需要指明其为字符型 并指明最大的字符长度。 ? 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 命令