不知道大家在自学Python/Stata/R的时候,有没有纠结过这个问题:想动手实践下感兴趣的命令或模型,那么就需要一个样本数据(dta,数据框)。去哪找省时省力,找到的数据集靠谱又好用呢?——还记之前提到过最简单的方法有两种,一是手工录入(之前有文章介绍过);https://zhuanlan.zhihu.com/p/321627537zhuanlan.zhihu.com
二是导入软件自带的数据集。第一种录入数据方式一般的相关书籍都有介绍,至于第二种…...就我看过的上百本Stata-R-Python的教材而言,几乎没有一本提到过。这就是说这个知识点冷的原因咯。
导入自带的数据集,简单、高效,数据往往也更加真实。应该成为初学者导入数据的首选方法。
有几个常见的数据集,想必很多用户都非常熟悉——比如Stata的auto和nlsw,R语言或Python中的Iris,mtcars和Titanic。
接下来,让我们复习一下如何手工录入一个数据集(下面是截图,代码在上面的链接中)。这里以Python为例。
1 Stata自带数据集
Stata是个高度商业化的收费软件,不管什么功能,只要有的,一般都做得很极致。就拿自带数据导入来说,就是一个简单的sysuse auto.dta命令。除了系统自带的数据,Stata还提供官方的在线数据集。在线数据集包括了sysuse命令相关的数据集,具体可以用webuse xxx.dta命令来导入。
总的说来,Stata自带的数据种类齐全,使用方便。就因为这点,当年我刚开始学用Python跑回归的时候,就经常跑到Stata去倒(导)出数据。
1.1 sysuse命令与本地数据集
在Stata命令窗口输入 sysuse dir,返回的是Stata本地的几十个范例数据集列表。
接下来,可使用sysuse+数据集名字的命令,将该数据集导入Stata内存。简单,又方便。
1.2 在线示范数据集
通过help dta_manuals命令,返回一个按手册名字分类、共包含数百个示例数据集(可以用webuse命令调用,也包括了全部的本地数据集)。
下面我们点击打开最后一个User's Guide [U]手册(help q_user命令也可),里面带有数十个范例数据集。其中前面两个就是我们比较熟悉的auto和nlsw系列数据之一的nlswork数据集。help q_user 命令可查看Stata全部范例dta
点击旁边的use就可以导入内存(如下图所示),点击describe对数据进行描述(不导入内存)。点击 use 在线导入auto数据集也可以使用 webuse 命令在线导入 auto 数据集
在将Stata的范例数据集导入到内存后,可以通过以下命令将数据导出,方便后面R或Python的使用。
. export delimited using "D:\Spyder\auto.csv", replace //导出为CSV文件
. export excel using "D:\Spyder\auto.xlsx", firstrow(variables) //导出为Excel文件
注意:Stata的dta在导出过程中可能出现信息丢失。对于带有标签数值数据,导出为CSV或者xlsx的时候,保留的是Stata的变量标签取值,而不是原来的数值。比如原来foreign变量下面的取值是1或0,对应的标签是Foreign和Domestic,导出后数据就变成了Foreign或Domestic,而不是原来的1或0。
2 R 自带的数据集
R导入自带的数据集理论上是最方便的,比Stata还快。因为,R自带的数据集甚至都不用导入(当前工作环境),就可以直接查看或者调用。(想当年我尝试过好多种不同的方法导入R自带的数据。还经常从Stata倒腾数据过来,给R用==!)
2.1 R自带的datasets包中的数据集
R自带的数据集只要是来自本地的datasets,都可以直接查看和调用。比Stata还更方便一点。先演示直接查看和调用mtcars数据集。
> ##直接查看mtcars数据集
> head(mtcars) ##查看头6行
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4