全部版块 我的主页
论坛 计量经济学与统计论坛 五区 数据交流中心
29981 41
2017-07-24
  作为一个跨专业过来的小博,感觉与专业学经济出身的同学差距挺大的,很多东西都得下工夫补上。  这不,为了写毕业论文,入手了一套98-07的中国工业企业数据库,利用这个暑假打算将数据库整理好,以便以后的写作随时调用。作为一个小白,计量软件只会STATA,并且是很简单的回归应用,只能看懂小部分简单程序,想要入手这套数据库虽然已经做好心理准备,但困难却超出了预期。我将工作分为了三个阶段:  第一个阶段:数据转化成DTA格式,我只会STATA
  第二个阶段:数据重复值、缺省值等的处理和数据匹配等数据加工
  第三个阶段:用数据计算出回归可用的各种变量,例如集聚度、全要素生产率等等。
  当我完成每个阶段,我计划将自己处理过程分享一下,虽然不知道自己会卡在那个过程。
  先说说手头的数据和工具:  数据:ACCESS格式的工业企业数据库
  工具:STATA.14
  电脑配置:I5-5200U,2.2GHZ,4G
  第一阶段问题:将数据库转化成能输入STATA的DTA格式

  (1)首先想到的是STAT TRANSFER这个软件,然后下载了STAT TRANSFER9,免安装的,但跑完发现这个版本不能转化汉字,汉字转化出来基本就是乱码。因此选择最新的STAT TRANSFER12,但转化的时候发现要处理的每年的数据样本在16万-33晚之间,超出了这个软件的处理上限,然后用这个软件转化的可能性算是没有了。
  (2)再次想到的方法是复制黏贴的方法,发现ACCESS不能直接往STATA里粘贴,于是新建EXCEL,在数据里导入ACCESS,发现用WPS可以很完整的将其导入EXCEL,这样就将ACCESS转化成了EXCEL,然后再往STATA复制黏贴,1999-2004可以很好的粘贴进STATA,但2005-2007则出现了数据样本凭空多出来10-50个样本,后来发现,原来是粘贴进STATA时候,有的数据样本被分成了两行,产生了数据错位,考虑到数据的完整性,这种方法也否决了。
  (3)看论坛上说可以转化成CVS或者XML格式然后倒入STATA,于是从EXCEL格式转化成这两种格式的表格,然后再STATA里导入,发现CVS格式可以很快的完成,但汉字部分无法转化,是乱码;而XML格式一点击导入,则出现软件没反应,根本跑不动,将电脑开着一天也还是没反应,以为电脑太差,于是去电脑装配店用I7-7700K,16G的电脑跑,一个多小时依旧纹丝不动。看来这两种方法也废了。
  (4)最后只好将2005-2007年的数据以EXCEL格式导入STATA,但被提示最大只能一次性导入40M的数据,没办法,只好将数据分割成小于40M的几个表格,分别导入转化成DTA格式,然后将每个样本生成一个id,用以下MERGE命令合并起来:
  merge 1:1 id using filename.dta,force
  合并以后很多变量类型会变成STRING格式,然后利用destring命令转化回来,检查了各年样本数量,与ACCESS格式是一致的,用LIST命令抽查三段每段100个样本的数据,发现没错误,觉得输入应当没有错误了。值得注意的是,STATA14可以识别汉字的变量,因此分表格时候可以直接复制汉字变量就可以了。
  至此,第一阶段算是完成了,前后由于中间有很多琐事,用了一周的时间。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-8-4 00:22:14
可以用odbc命令直接导入大型access文件
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-4 19:35:57
xixizzx 发表于 2017-8-4 00:22
可以用odbc命令直接导入大型access文件
ODBC命令是这个方法吗?http://blog.sina.com.cn/s/blog_9b1b494a0102v4cp.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-4 19:36:43
xixizzx 发表于 2017-8-4 00:22
可以用odbc命令直接导入大型access文件
ODBC命令是这个方法吗?http://blog.sina.com.cn/s/blog_9b1b494a0102v4cp.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-17 11:05:37
请问一下2003行业代码进行过调整,之前与之后的代码不同,你是如何处理呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-17 18:39:53
kevinjxufe 发表于 2017-8-17 11:05
请问一下2003行业代码进行过调整,之前与之后的代码不同,你是如何处理呢?
根据变更的内容(例如12年的这次:https://wenku.baidu.com/view/630490113c1ec5da50e27053.html),将03年前行业代码改变的行业代码更改为03年后的代码,其他不变。这部分我是手动完成的,所以没写代码。可以在代码里插入这样一段:
destring cic,replace
gen f=cic
if year<2003{
  replace f=新代码1 if cic==旧代码1
  replace f=新代码2 if cic==旧代码2
  .
  .
  replace f=新代码n if cic==旧代码n
}
drop f
rename f cic
tostring cic replace
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群