哈喽,诸君安!
今 天是小编的学校在这学期的最后一个工作日了,不知各位的寒假是否也即将来临呢?在此预祝大家假期愉快!哦,别忘了,闲暇之余还是要多多关注我们爬虫俱乐部 哦,寒假期间,小编仍会陪伴大家,与大家在一起!今天小编为大家奉上的可谓纯干货,不含一点添加剂——变量批量重命名与面板数据输出。
如果读取的excel格式的数据变量名是以A到Z定义的,或者其它没有规律的变量,那么怎么把它们重命名为有规律的变量名呢?
我们以wind数据库的上市公司的数据为例,主要是以1990-2017年的上市公司的分红数据为例。
当 我们把1990-2017年的上市公司的分红数据读入后,发现有86列,变量名为“A B C D E F G H I J K L M N OP Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR ASAT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BSBT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH”,如果我们是使用rename一个个重命名会很麻烦,这时候我们需要使用varlist _all,这个可以实现存储所有变量名,主要的程序如下:
clear
set more off
global path = "F:\数据分析\"
import excel "$path\现金分红与盈利比较(公司明细).xls", clear
drop in 1/2
drop in -2/-1
local count=1
foreach x of varlist _all {
disp "`x'"
rename `x' v`count'
local count = `count' +1
}
我们读入1990-2017年的上市公司的分红数据格式如下,即分红数据是3列是一年的,然后通过使用post命令就可以实现面板数据的输出,同样我们也可以通过重命名实现面板数据的格式。
方法一:使用post输出面板数据gen stkcd = real(substr(v1,1,6))
capture postclose dividend
postfile dividend stkcd year str30 divsumstr30 profit str30 divrate using "$path\dividend", replace
local num = _N
forvalues m=3(3)86 {
disp `m'
forvalues n =1(1)`num' {
local divsum = v`m'[`n']
local year = 1989 + `m'/3
local m1= `m'+1
local m2=`m'+2
post dividend (stkcd[`n']) (`year') (v`m'[`n']) (v`m1'[`n']) (v`m2'[`n'])
}
}
postclose dividend
use "$path\dividend",clear
方法二:通过rename和reshape long实现面板数据的转化
gen stkcd = real(substr(v1,1,6))
forvalues m=3(3)86 {
disp `m'
local year = 1989 + `m'/3
local m1= `m'+1
local m2=`m'+2
rename (v`m' v`m1' v`m2') (divsum`year'profit`year' divrate`year')
}
reshape long divsumprofit divrate, i(stkcd) j(year)
最后输出的面板数据的格式如下图所示:
注:上述处理方法不适用于14版本
接下来报告空气质量
全国空气质量如下
在全国空气质量较佳的今天
山东的空气质量就显得很差了
以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~
应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~
编辑 by张欢
往期推文推荐:
7.一言不合就用stata写邮件(Outlook/Foxmail)
9.I have a Stata, I have a python
10.I have a Stata, I have a Python之二——pdf转word
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:xueyuan19920310@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。
欢迎关注爬虫俱乐部
微信扫一扫
关注该公众号