欢迎来到天天文库
浏览记录
ID:38261671
大小:118.54 KB
页数:5页
时间:2019-05-25
《Stata基础命令09_infix》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、infix:infile命令的变体中南财经政法大学STATA协会学术组2013年3月27日1简介笔者一直在考虑要不要把infile,infix这两个命令放在一个讲义里讲。但是考虑到单是infile的注意事项就够读者读一阵子的了,所以没有把两个掺和在一起。现在既然讲清楚了infile命令,那么infix命令讲起来也就简单多了——infix命令,直白地说,它仅仅是在写.dct文件时比infile写来得简易些,本质上并没有太大的改进1。而infile命令存在的意义则在于,它虽然篇幅长、死板且看似复杂,但是它规范、不容易出错,而且顺便加上了变量标签。这两个命令的选择,笔者认为仁者见仁智者见智,
2、但是需要提醒的是,两个命令不要混淆2。用infix命令读入此类文件的步骤仍为:1.依据数据的特点编写.dct文件或类似.dct文件的命令语句。文件中需说明读入数据的路径和名称。2.使用infile命令读入.dct文件。一般为:.infixusing路径XXX.dct,clear故重点还是第1步。我们同样还是用data.txt数据文件3做例子,其.dct文件如下:1infixdictionaryusingD:stata12.0data.txt{22lines31:4longidnumb1-95str6sex10-156intage16-177income24-2982:9str9
3、eval1-910}11观察这个文件,我们不难发现它比infile命令编写的.dct文件要简单。要注意的是:•用infix命令编写的.dct文件就要用infix命令来读入,不能混淆;•除了字符串需要声明变量类型(如第5行的str6)之外,数值型变量的声明可以省略,Stata会以最节省的方式来自动选择数据类型4;1之所以还是要讲这个命令,是因为很多人在用这个命令,用得和infile一样广泛。所以需要提及一下。2为了使得本文档结构清晰,避免混淆,故不准备把上次讲过的代码放在本文档中供读者对比。有需要的读者请自行打开infile命令的文档。3详见infile命令讲义的简介部分。4见第7行
4、。但是请注意,Stata自动帮加上的并不是你想要的,比如后面的示例1。若有特殊要求,比如对某变量的精度有要求,应该声明变量类型。1•.dct文件的最后一行依然要空出来。还有种方法可以一次性读入数据,相当于上述两个步骤的结合,即直接以一条类似.dct文件命令语句的方式读入:.infix2lines1:idnumb1-9str6sex10-15age16-17income24-292:str9eval1-9usingD:stata12.0data.txt,clear上述方法可以一次性读入数据,不过不难发现,其实只是将.dct文件大括号里面的东西替换了dictionary的位置,并在
5、后面加上clear的选项。这样虽然简易,但是毕竟层次不分明,修改起来就困难一些。注意:上面这条语句是排版的缘故分成了两行,实际上在Stata命令行中需要一行输入完毕,不能分两行;若在do-file中,需要用三条斜杠的符号“///”(不包括引号)来分隔断开的两行,表明程序还没有写完。2命令格式[][][]infixusingdfilenameifin,options其中的参数与其他使用方法与infile命令类似。不赘述。注:没有outfix命令。3示例3.1示例1读入data.txt数据文件。方法1:编写.dct文件步骤如下:1.编写data2.dct。参见简介中.dct文件的例子,此处
6、略。2.编写do-file输入infix命令并列出结果:1infixusingD:Stata12.0data2.dct,clear2list方法2:直接读入do-file如下:1infix2lines1:idnumb1-9str6sex10-15age16-17income24-292:str9///2eval1-9usingD:stata12.0data.txt,clear3list//上述命令省略了所有数值变量的声明。注意观察这个结果与方法1的区别。23.2示例2读入score.raw数据文件5。方法1:编写.dct文件步骤如下:1.数据预处理。过程略。2.编写score2
7、.dct。1infixdictionaryusingscore.raw{23lines31:4str9name9-185math12-36eng14-872:8math22-39eng24-810}113.编写do-file输入infix命令并列出结果:1infixusingscore2.dct,clear2list方法2:直接读入do-file如下:1infix3lines1:str9name9-18math12-3eng14-8///22:math22-3eng24-
此文档下载收益归作者所有