楼主: arlionn
19680 22

[学习心得] GTA数据库(CSMAR国泰安数据库)变量名称导入STATA的处理 [推广有奖]

院士

73%

还不是VIP/贵宾

-

TA的文库  其他...

stata软件常见问题

威望
3
论坛币
9986462 个
通用积分
4151.9815
学术水平
914 点
热心指数
953 点
信用等级
694 点
经验
202409 点
帖子
4681
精华
5
在线时间
2025 小时
注册时间
2005-5-29
最后登录
2025-11-26
毕业学校
西安交通大学金禾经济研究中心

楼主
arlionn 在职认证  发表于 2010-11-16 09:43:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问题:

下载GTA数据后,有两个文件:一是数据文件,二是变量列表文件。数据文件中的变量都是英文的,可以直接导入Stata,但缺少中文标签。这可以从第二个文件,即变量列表文件中得到。
变量列表文件示例如下:

表1 GTA的变量列表文件
Stkcd:证券代码
Annodt:公告日期
Repttype:公告类型
Chgdt:变更日期
Position:变更职位
Positype:其中:变更类型
Positxx:减:销售额

对这个列表做简单处理,可以得到变量标签的定义文件。


处理步骤为:

1. 将表1中的变量列表复制-粘贴到Stata数据编辑窗口(输入edit命令可以打开):



2. 执行如下命令:

   gen v0 = subinstr(var1,"其中:","其中-",.)
   replace v0 = subinstr(v0,"减:","减-",.)
   split v0, p(:) gen(s)
   gen str20 v1 = "   label var "
   replace s1 = lower(s1)
   replace s2 = `"""' + s2 + `"""'
   gen a1 = " "
   gen a2 = a1
   order a1 v1 s1 a2 s2
   keep a1 v1 s1 a2 s2
   browse

将data-editor窗口中的内容贴入do-editor文件即可:



       label var  stkcd             "证券代码"
       label var  annodt            "公告日期"
       label var  repttype          "公告类型"
       label var  chgdt             "变更日期"
       label var  position          "变更职位"
       label var  positype         "其中-变更类型"
       label var  positxx           "减-销售额"

对于一次性需要合并大量的 GTA 数据表格的同学而言,这个方法非常省时,且不易出错。

(Source:http://blog.cnfol.com/arlion/article/28549911.html
二维码

扫码加我 拉你入群

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

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

关键词:国泰安数据库 Stata 国泰安数据 CSMAR tata 数据库 销售额 英文 中文 国泰

本帖被以下文库推荐

沙发
dd717 发表于 2010-11-16 23:16:59
赞一个,学习了!

藤椅
hanfeichi 发表于 2011-1-18 16:55:06
很有用 ,顶楼主~·

板凳
liangtao009 发表于 2011-1-18 18:43:51
1# arlionn
连老师,新版CSMAR已经可以直接有两行字段名,一行中文,一行英文,稍微转秩一下,用stata就可以给中文加标签。貌似更简单。当然是看了您的博客后才想起来的。

报纸
水蓝色qing 发表于 2012-2-26 10:28:19
还可以这样子呀,呵呵,谢谢楼主分享

地板
voodoo 发表于 2012-8-14 18:40:50
liangtao009 发表于 2011-1-18 18:43
1# arlionn
连老师,新版CSMAR已经可以直接有两行字段名,一行中文,一行英文,稍微转秩一下,用stata就 ...
何需“转置”呢?!
见如下程序(csv格式的示范数据在 ipobasic.zip (70.07 KB) 本附件包括:
  • ipobasic.csv


set more off

//  #1  insheeting
insheet using ipobasic.csv, clear noname comma
// browse

//  #2  rename, label and cleaning
foreach v of varlist _all {
        replace `v' = subinstr(`v',"[没有单位]","",1) in 1    // 修改标签
        label var `v' "`=`v'[1]'"    // 变量标签
        ren `v' `=lower("`=`v'[2]'")'    // 变量更名
}
drop in 1/2
compress


foreach v of varlist _all {   // 处理日期型变量
        if strmatch("`: variable label `v''", "*日期*") {
                gen _`v' = date(`v', "YMD")
                label var _`v' `: variable label `v''
                drop `v'
                ren _`v' `v'
                format `v' %tdCCYY/NN/DD
                order `v', before(t1)
        }
}

foreach v of varlist t1-taxtp {    // 处理其他数值型变量
        destring `v', replace
}


replace stkcd = substr("000000"+stkcd, -6, 6)  // 深交所股票代码前补足0


已有 1 人评分学术水平 热心指数 收起 理由
liuxinglin2018 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

巫毒上传,必属佳品!
坛友下载,三思后行!

7
liangtao009 发表于 2012-8-14 20:45:01
voodoo 发表于 2012-8-14 18:40
何需“转置”呢?!
见如下程序(csv格式的示范数据在)
嗯,不错,程序写的确实很美,赞一个

8
arlionn 在职认证  发表于 2012-8-15 09:16:06
总之,无论 GTA 怎么变,都在我们和 Stata 的控制范围内,哈哈

9
hhc222 发表于 2013-3-28 16:14:50
先记下了,好贴
古尔浪瓦

10
pengzhenjiang 在职认证  发表于 2013-4-27 10:54:04
voodoo 发表于 2012-8-14 18:40
何需“转置”呢?!
见如下程序(csv格式的示范数据在)
为什么换份数据就不行啊?只能针对这一份数据么?望指点!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 12:35