[-] 导入方式(为方便示例,都使用Excel数据,不考虑SQL数据库数据)
[-] 示例数据如下(请读者自行下载)
[-] 使用代码方式导入
cd "F:\STATA测试数据" //切换工作目录
clear //清除内存中的数据
set more off //设置结果滚动显示
import excel using "auto示例数据.xlsx", firstrow clear //更多参数请在命令行窗口输入 help import 进行详细语法查看
auto示例数据.xlsx
是需要导入的文件名,具体以自己的文件名为准firstrow
参数是将Excel的第一行作为Stata变量名clear
参数是将目前Stata内存中的数据清楚help import
[-] 使用Stata图形化界面导入
[-] Stata的常用数据类型
认识基本的数据类型有助于后期在数据预处理过程中如merge、append、duplicates drop等命令的正常运行
[-] Stata的常用数据结构
作者在此处使用 山东大学 - 陈强 -《高级计量经济学》中的课件进行阐释,陈强博客地址:http://www.econometrics-stata.com/col.jsp?id=101
2013 年中国分省 GDP (亿元)
省份 | GDP |
---|---|
北京 | 19500.56 |
天津 | 14370.16 |
河北 | 28301.41 |
山西 | 12602.24 |
内蒙古 | 16832.38 |
辽宁 | 27077.65 |
吉林 | 12981.46 |
黑龙江 | 14382.93 |
上海 | 21602.12 |
江苏 | 59161.75 |
浙江 | 37568.49 |
安徽 | 19038.87 |
福建 | 21759.64 |
江西 | 14338.5 |
山东 | 54684.33 |
河南 | 32155.86 |
湖北 | 24668.49 |
湖南 | 24501.67 |
广东 | 62163.97 |
广西 | 14378 |
海南 | 3146.46 |
重庆 | 12656.69 |
四川 | 26260.77 |
贵州 | 8006.79 |
云南 | 11720.91 |
西藏 | 807.67 |
陕西 | 16045.21 |
甘肃 | 6268.01 |
青海 | 2101.05 |
宁夏 | 2565.06 |
新疆 | 8360.24 |
1994-2013 年山东省 GDP (亿元)
年份 | GDP |
---|---|
1994 | 3844.5 |
1995 | 4953.35 |
1996 | 5883.8 |
1997 | 6537.07 |
1998 | 7021.35 |
1999 | 7493.84 |
2000 | 8337.47 |
2001 | 9195.04 |
2002 | 10275.5 |
2003 | 12078.2 |
2004 | 15021.8 |
2005 | 18366.9 |
2006 | 21900.2 |
2007 | 25776.9 |
2008 | 30933.3 |
2009 | 33896.6 |
2010 | 39169.9 |
2011 | 45361.9 |
2012 | 50013.2 |
2013 | 54684.3 |
1994-2013 年中国分省 GDP (亿元)
省份 | 年份 | GDP |
---|---|---|
北京 | 1994 | 1145.31 |
北京 | 1995 | 1507.69 |
... | ... | ... |
北京 | 2012 | 17879.4 |
北京 | 2013 | 19500.56 |
天津 | 1994 | 732.89 |
天津 | 1995 | 931.97 |
... | ... | ... |
天津 | 2012 | 12893.88 |
天津 | 2013 | 14370.16 |
... | ... | ... |
新疆 | 1994 | 662.32 |
新疆 | 1995 | 814.85 |
... | ... | ... |
新疆 | 2012 | 7505.31 |
新疆 | 2013 | 8360.24 |
在一般情况下,对于面板数据,我们可以拆分成截面数据和时间序列数据,但是这个过程无法逆向拆分,只可以逆向补充。原因是面板数据作为多个体、多时间的数据结构来说,想要拆分成截面数据的话,只需要提取单个时间节点的数据;想要拆分成时间序列数据的话,只需要提取单个个体的数据,这是一个十分有趣的过程,在下面我们进行详细介绍。
[-] 面板数据拆分为截面数据
** 面板数据拆分截面数据演示
cd "F:\STATA测试数据" //切换工作目录
clear //清除内存中的数据
set more off //设置结果滚动显示
import excel using "1994-2013年分省.xlsx", firstrow clear //导入面板数据
keep if 年份 == 1994 //第一种方式,使用keep保留符合要求的数据
drop if 年份 != 1994 //第二种方式,使用drop删除不符合要求的数据
此处Markdown语法与Stata语法出现了转义,请读者按照下图第14行代码中的"!="描述<不等于##逻辑判断
[-] 面板数据拆分为时间序列数据
keep if 省份 == "北京" //第一种方式,使用keep保留符合要求的数据
drop if 省份 != "北京" //第二种方式,使用drop删除不符合要求的数据
此处Markdown语法与Stata语法出现了转义,请读者按照下图第14行代码中的"!="描述<不等于##逻辑判断
[-] 原始数据结构
| var1 | var2 | //变量名
% str % str % //数据类型
[-] 语法
gen new_var = var1 + var2
[-] 示例原始数据
| var1 | var2 | | 12345| 5678 |
[-] 示例语法
gen sum_string = var1 + var2
[-] 示例结果数据
| var1 | var2 | sum_string | //变量名 | 12345 | 5678 | 123455678 | //变量名所对应的数值
[-] 原始数据结构
| sum_string |
% str %
[-] 语法
gen new_var = substr(sum_string,m,n)
[-] 示例原始数据
| sum_string |
| 12345678 |
[-] 示例语法
gen var3 = substr(sum_string,2,4)
[-] 示例结果数据
| var3 |
| 2345 |
[-] 原始数据结构
数据结构不限
[-] 语法
bysort var1 : egen new_var = sum(var2) // 以var1为分类,对var2分组求和
bysort var1 var3 : egen new_var = sum(var2) // 以var1为一级分类,var3为二级分类,对var2分组求和
[-] 示例原始数据
| var1 | var2 | var3 | | 1 | 3 | A | | 1 | 2 | A | | 1 | 2 | A | | 1 | 3 | B | | 1 | 2 | B | | 1 | 3 | B | | 2 | 1 | A | | 2 | 1 | A | | 2 | 2 | A | | 2 | 2 | B | | 2 | 2 | B |
[-] 示例语法
bysort var1 var3 : egen newvar = count(var2)
[-] 示例结果数据
| var1 | var2 | var3 | new_var | | 1 | 3 | A | 3 | | 1 | 2 | A | 3 | | 1 | 2 | A | 3 | | 1 | 3 | B | 3 | | 1 | 2 | B | 3 | | 1 | 3 | B | 3 | | 2 | 1 | A | 3 | | 2 | 1 | A | 3 | | 2 | 2 | A | 3 | | 2 | 2 | B | 3 | | 2 | 2 | B | 3 |