哈喽,诸君安。今天我给大家介绍一个数据的魔法师——outfile, 我们在之前的推文中介绍了infile的应用,infile是把数据导入到stata中,那么很多时候我们也需要从stata中把数据导出来。而 outfile可以利用自己的魔法棒([,options])从stata中导出各种格式的数据,还等什么?跟我一起欣赏outfile的魔法表演吧!
outfile的语法结构如下:
每 一个魔法师都有一个魔法棒,那么outfile的魔法棒就是[,options]。为了方便大家快速的认识outfile,我在这里举一个简单的例子,我 们以stata系统数据auto.dta 为例。假设我们要把这个数据导出来,为了方便观察我们只保留部分变量以及前10个观测值:
打开导出的数据:
魔法1:解除80字符限制
我们发现导出的文件中,每一行没有结束就自动换行了,这是因为outfile导出的数据默认每一个观测值每一行只能包含80个字符,这不符合我们平时对数据存储的一种习惯,所以可以借助[,wide]选项来解除这一限制。
outfile using d:/outfile魔法一.txt,wide replace
我们看一下原始数据:
我们发现原始数据是有变量名称,但是outfile导出的数据中,是没有变量名称的。那么我们以后使用这个数据时,可能会不太方便。怎么办呢?且看下文分解。
魔法2:导出字典格式的数据
我们知道用infile读入数据时,需要用到数据字典,作为infile的孪生兄弟,outfile可以以数据字典的格式导出数据,数据字典格式可能是你组织原始数据的最好方式,它对你的数据有一个详细的描述,你不需要记住变量的顺序、数量、名称。这样方便了你以后认识这个数据。
outfile using d:/outfile魔法2.txt,dict
这样我们就到导出了一个数据字典格式的数据,这时候就可以利用infile直接把这个数据导入到stata中,程序如下以及结果如下:
infile using d:/outfile魔法2.txt,clear
魔法3:导出以逗号分隔的数据
我们还发现outfile导出的数据默认是以空格分隔,但是有一些程序偏好用逗号分隔的数据,这时候可以outfile就可以召唤[,comma]出来了!
outfile using d:/outfile魔法3.txt,comma
魔法4:导出没有数值标签的数据
在这组数据中,foreign是一个数值变量,但是它有一个数值标签,如果现在我们需要通过其他程序处理这个数据,首先我们得保存这个数据,可是其他程序能识别所保存的数据吗?答案是否定的,大多数的程序只能识别纯文本的数据,例如text editor产生的数据。而这种特殊格式的数据只有stata能识别,怎么办呢?outfile的一个强大的功能就是能把stata中的数据以纯文本的格式导出来,从而可以被其他程序识别和处理。当然如果你不想要数值标签,outfile也可以帮助你,借助[,nolabel]选项。
outfile using d:/outfile魔法4.txt,nolabel wide
这样foreign就不在显示数值标签了!
魔法5:导出没有双引号的数据
如果你不想要数据中字符串的双引号,outfile也可以帮你解决,此时借助[,noquote]
outfile using d:/outfile魔法5.txt,noquote wide
这里值得注意的是,无论什么时候,用outfile导出一个日期格式的变量,导出之后都为字符串格式。比如,我们从http://www.stata-press.com获取sp500指数2001年1月的交易数据,并利用outfile导出数据。
use http://www.stata-press.com/data/r14/outfilexmpl,clear
数据导入成功后,观察整个数据集的信息,我们发现日期的存储类型为整数型,显示格式为%td。
导出数据并显示结果,如图:
我们发现,变量date的原始存储类型为整数型,但被outfile导出之后变成了一个字符串。
outfile的这场魔法表演到了这里基本上结束了,是不是很精彩呢?outfile可以导出多种格式的数据,总有一款适合你!outfile,应有尽有!outfile你值得拥有!
说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场,点赞打赏,且随心意。今朝点滴,让我们更进一步;他年涌泉,更好的文章给更好的你。
(编辑 @梅洁瓷傲)
那些让你具有高手气场的黑科技:
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:xueyuan19920310@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
长按关注呀~
微信扫一扫
关注该公众号