查看原文
其他

Stata数据读入——打开方式不同?

爬虫俱乐部 Stata and Python数据分析 2023-01-01

本文作者:冀思慧,中南财经政法大学金融学院

本文编辑:魏若芙

技术总编:方一卓


Stata&Python云端课程来啦!

     为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~爬虫俱乐部推出了Python编程培训课程Stata基础课程Stata进阶课程。报名课程即可加入答疑群,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦。我们在这篇推文的最后提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~

引言
在使用Stata进行数据处理时,一般第一步就是数据读入,根据数据位置的不同,数据读入可以分为调入Stata自带数据、调入本地数据及调入在线数据,一起来看看如何操作吧!

一、调入auto数据

使用sysuse命令,sysuse可以读入Stata自带的数据库,通过sysuse dir我们可以查看可供调用的数据,下面我们以auto数据为例。

1.1调入auto数据中的全部数据

我们可以通过以下命令对auto中的所有数据进行读取:

sysuse auto, clearbr //浏览数据
1.2调入auto数据中的部分变量
sysuse auto, clear keep price mpg length //price mpg length为变量名称br
1.3调入auto数据中的部分样本

保留特定行数的数据:

sysuse auto, clearkeep in 1/10 //保留1-10行br

保留具有某些特征的数据:

sysuse auto, clearkeep if foreign==1br
二、调入本地数据
2.1Stata格式数据文件

我们可以创建一个data.dta存入G盘,然后通过use命令进行读入:

clear allcd g:/数据读入 //将默认文件地址更改为G盘数据读入文件夹sysuse autokeep in 1/10save data.dta,replace use data.dta,clearbr

当本地数据文件为Stata格式时,用use命令直接调入:

clear alluse "g:/数据读入/data.dta",clear //引号里面为文件路径br
2.2文本文档形式

当文件为文本文档形式时,我们可以使用其他的命令读入数据,其中文本文档常见的分隔方式有:空格分隔、逗号分隔、制表符分隔、固定宽度的文本文档,这里我们介绍的命令有infile、infix、import delimited。下面我们以一次包含数学、英语的期中成绩为例,来了解各个命令的使用。(Note:本文中用到的文件,大家有需要的话,可以后台回复“数据读入文件”进行获取欧~)

  1. infile

infile可以处理自由格式和固定格式的文本文档。
  • 自由格式

自由格式指通常用空格、制表符等分隔的文本文档,我们通过如下命令进行数据读入:

infile str4 name age math english using file2.txt, clear //变量为字符型时,用str指明
  • 固定格式

用infile导入固定格式的数据,必须要使用数据字典,每读入一个变量,数据字典就需要增加一行,这种方法在之前的推文《infile,你这是要搞事情啊!》中进行了详细的介绍,这里不再进行赘述。

b. infix

infix主要用于读入固定宽度的数据,下面我们来了解两种不同宽度数据的读入方式。

变量单行排列,如图:

我们可以使用下面的程序进行读入:
infix str10 name 1-4 age 15-16 math 30-31 english 34-35 using file3.txt, clear
量多行排列,如图:

我们可以使用下面的程序进行读入:

clear allcd g:/数据读入infix str100 v 1-100 using file4.txt, clearreplace v=v+"!"+v[_n+1] if mod(_n,2)==1 //将偶数行加到奇数行,中间用!进行分隔keep if mod(_n,2)==1 //保留奇数行compress //压缩空格gen name = substr(v,1,4) //将v变量中第一列开始4个字符生成新变量并命名为namegen age = substr(v,7,2)gen math = substr(v,11,2)gen english = substr(v,14,2)drop v //删除掉v变量br

以上两种读入方式的输出结果均为:

c. import delimited

在Stata13之后,insheet已经不是Stata的官方命令,目前,insheet命令已经被import delimited所取代。import delimited相较于其他的数据读入命令,具有一定的优点,例如其突破了infix和infile读入固定宽度(最大长度为524,275个字符)的限制、可以自定义分隔符等。

  • 不指定分隔符时,Stata默认以逗号或制表符分隔:

import delimited name age math english using file1.txt, clear
  • 指定分隔符时

如果文本是以空格进行分隔的,我们可以通过delimiter(" ")定义空格为分隔符。

import delimited name age math english using file5.txt, clear delimiter(" ")

如图,以下文件中是以$$作为分隔符的:

我们使用以下程序进行读入,其中asstring命令表示将字符串作为整体视为一个分隔符。比如,delimiters("first",asstring)是将“first”整体作为一个分隔符,而delimiters("first") 会将“f”、“i”、“r”、“s”、“t”都作为分隔符。

import delimited name age math english using file6.txt, delimiter("$$",asstring) clear //asstring表明$$整体为分隔符,否则认为$$两个字符分别为分隔符

以上程序的输出结果为:

三、调入在线数据
3.1webuse

webuse这个命令可以从Stata的网站上获取数据,首先我们使用help dta_manuals来查看可供使用的手册,里面包含有命令介绍与配套的数据库,这些数据库都可以由webuse直接调入。

由于webuse默认了网络地址为Stata官网的手册地址,所以导入网上数据时可以直接调入而不需要指定网络数据地址。
以下两条命令等价:
webuse lifeexp.dta, clear use http://www.stata-press.com/data/r15/lifeexp, clear
使用 webuse query命令,我们可以看到当前默认设定的网址:

通过以上学习,相信大家都学会了基本的数据读入,如果想要读入excel文件,大家可以读一读我们之前的推文,希望大家都可以有所收获!

END
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。



腾讯课堂课程二维码




            


 对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!











往期推文推荐

数据类型——Dict、Set与Frozenset简析

Stata小贴士之外部命令安装路径

有一种夏天叫做宫崎骏的夏天

换装术|多个Excel文件如何一键转为dta格式

【基础篇】Python可变对象与不可变对象

Stata绘图系列——细节掌控绘图区域!

 4月A股的收官战之概念板块哪家强?

解放双手!你必须要会的两个命令—inlist & inlist2

【基础篇】字符串之判断方法

Stata绘图系列——让你的直方图随心所欲

【爬虫篇】湖人无缘季后赛,球迷如何回应

客官,要来份四象限图吗?

Python实现简繁体转换

Stata与Python交互方法及数据传递

 “青铜”爬“王者”

 留下想要的变量,你会几种方法?

 Python:朋友圈配图,我承包了

 绘制全国祠堂密度地图

 如何使用Stata绘制一幅好看的柱状图?

【爬虫篇】基于selenium爬取美团评论

 双标的莱万——足球无关政治?!

 Stata处理重复值:duplicates

It's time to send a flower to your lover!        2021各省GDP新鲜出炉

 爬虫实战-采集全国各省疫情数据

 log——为你的操作保驾护航

 一行代码教你玩转emoji

 票房遇冷的春节档口碑冠军丨《狙击手》影评分析

 学习丰县,营造良好营商环境!

 大国丢娃图:从川渝到徐州!

 丰县“失火”,殃及徐州:股市超跌近30亿!

 Unicode转义字符——编码与解码

        徐州!徐州!

        B站弹幕爬虫——冬奥顶流冰墩墩&雪容融

        不会用Stata做描述性统计表?so easy!

        丰沛之地:备足姨妈巾

 过年啦,用Python绘制一幅属于你的春联吧!

       登上爬虫俱乐部“时光机” |上“机”出发 开启一段奇妙之旅

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存