楼主: kidczw
3192 6

[程序分享] Excel 面板数据处理成导入Stata的格式 [推广有奖]

  • 8关注
  • 2粉丝

已卖:147份资源

博士生

37%

还不是VIP/贵宾

-

威望
0
论坛币
686 个
通用积分
17.1688
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
22007 点
帖子
45
精华
0
在线时间
479 小时
注册时间
2015-1-26
最后登录
2025-12-10

楼主
kidczw 发表于 2020-3-12 00:12:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
开门见山,想要把这样的数据
Snipaste_2020-03-12_11-29-16.png


处理成导入stata的格式(因为这样才能用面板回归的命令 xtreg)

Snipaste_2020-03-12_11-30-10.png

该怎么做?

工具:Excel 自带的VBA
需要懂一点点编程(了解到循环就好)

Snipaste_2020-03-12_11-36-08.png
首先看一下数据情况,一共有29个ID,年份从2002-2015共14年
也就是说,想要弄成导入Stata格式的话
1. ID列每个ID重复14次(每个ID有14年数据),首尾相接排下来
2. 年份从2002-2015排列,排列完一次,接着排第二次,一直循环29次(一共有29个ID)。
3. 数据匹配对应的ID和年份,可以直接用Excel中index+match的组合函数,但是函数太长了,容易出错,所以还是用VBA排列

1. 排ID

Snipaste_2020-03-12_11-41-20.png

点击运行

Snipaste_2020-03-12_11-42-13.png

2. 排年份

Snipaste_2020-03-12_11-43-22.png
点击运行

Snipaste_2020-03-12_11-44-03.png
3. 排数据

Snipaste_2020-03-12_11-44-51.png

点击运行

Snipaste_2020-03-12_11-45-12.png
完成。

4. 拉到底部检查

Snipaste_2020-03-12_11-45-30.png
可以看到这是完全ok的
5. 把其他变量也按照上面的方法做下去。

6. 复制表格粘贴到Stata

Snipaste_2020-03-12_11-51-50.png

7. 使用面板回归

Snipaste_2020-03-12_11-52-37.png
(虽然结果不好看,不过这里重点不是这个。可以看到,是没啥问题的



二维码

扫码加我 拉你入群

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

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

关键词:Excel VBA 面板数据 Stata

Snipaste_2020-03-12_11-48-21.png (53.92 KB)

Snipaste_2020-03-12_11-48-21.png

Snipaste_2020-03-12_11-48-21.png (53.92 KB)

Snipaste_2020-03-12_11-48-21.png

Snipaste_2020-03-12_11-45-30.png (74.91 KB)

Snipaste_2020-03-12_11-45-30.png

Snipaste_2020-03-12_11-45-12.png (85.12 KB)

Snipaste_2020-03-12_11-45-12.png

Snipaste_2020-03-12_11-44-51.png (112.15 KB)

Snipaste_2020-03-12_11-44-51.png

Snipaste_2020-03-12_11-44-03.png (73.47 KB)

Snipaste_2020-03-12_11-44-03.png

# 个人博客 https://code-fox.gitee.io/

沙发
kidczw 发表于 2020-3-12 12:05:13
关键词后面不知怎么回事,会有一堆图片。帖子全部内容在关键词前面,后面的无需理会

藤椅
满壶俗人酒 学生认证  发表于 2020-4-11 14:02:40
好帖,收藏了,感谢楼主分享。

板凳
满壶俗人酒 学生认证  发表于 2020-4-11 14:31:40
请教楼主,如果变量有n个时,第三步排数据应该怎么写程序?

报纸
kidczw 发表于 2020-4-11 15:14:24
满壶俗人酒 发表于 2020-4-11 14:31
请教楼主,如果变量有n个时,第三步排数据应该怎么写程序?
(我是比较懒的做法了
比如说我那时候做的有三个变量,因为一个变量对应一个excel原表,我把三个表都放在同个工作表中,就像这样 1586588983(1).jpg
调整一下代码中的行列起点、终点位置
Snipaste_2020-04-11_15-13-05.png
最后再一列列变量录入就好了
# 个人博客 https://code-fox.gitee.io/

地板
kidczw 发表于 2020-4-11 15:20:27
满壶俗人酒 发表于 2020-4-11 14:31
请教楼主,如果变量有n个时,第三步排数据应该怎么写程序?
也可以把第二个变量的excel表覆盖第一个变量的excel表,刚刚忘记说了,就是录入的那个位置,VBA代码里的列位置要向右+1,不然就把刚刚生成的第一个变量的数据覆盖了。(刚刚的回复好像还没审核通过

7
满壶俗人酒 学生认证  发表于 2020-4-11 17:33:30
谢谢楼主!我用了vlookup+match也解决了上面自己提出的问题

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 12:54