楼主: 严城阊阖开
10843 6

[数据管理求助] 如何将excel批量导入stata,并根据文件名和工作表名生成新变量名称 [推广有奖]

  • 0关注
  • 0粉丝

本科生

65%

还不是VIP/贵宾

-

威望
0
论坛币
42 个
通用积分
2.9001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
134 点
帖子
11
精华
0
在线时间
207 小时
注册时间
2016-5-8
最后登录
2025-11-5

楼主
严城阊阖开 发表于 2018-3-21 13:59:51 |AI写论文
30论坛币
问题描述:
       本人有700家公司的excel,按照顺序命名为"个股数据_002001"——"个股数据_002700",每个excel中多个sheet,每个sheet是该公司一年度的数据,sheet名为“2015年报”“2014年报”等等,每个sheet中的变量完全相同。
问题是:
       我想把700家数据合在一个stata数据中,为了数据分析方便,我想根据文件名生成新变量“股票代码”、根据sheet名字生成新变量“年份”,以及保留每个sheet本来的所有变量。具体的stata代码如何实现?谢谢,本人用的是stata14.0

关键词:EXCEL Stata 批量导入 tata xcel 新变量生成 批量导入 Stata EXCEL

沙发
wangxy 发表于 2018-3-21 14:04:10
其实,EXCEL转STATA最佳方案是复制粘贴。

藤椅
军少 学生认证  发表于 2018-3-21 15:09:48
我感觉如果是上市公司的数据,用wind或者国泰安去下载一份整体是,可能比较方便处理

板凳
严城阊阖开 发表于 2018-3-21 15:13:27
军少 发表于 2018-3-21 15:09
我感觉如果是上市公司的数据,用wind或者国泰安去下载一份整体是,可能比较方便处理
就是因为这个数据是不能整体下载的,所以比较麻烦

报纸
军少 学生认证  发表于 2018-3-21 20:43:38
严城阊阖开 发表于 2018-3-21 15:13
就是因为这个数据是不能整体下载的,所以比较麻烦
哦哦,怪不得呢。

foreach file in 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 ///
   2013 2014 2015 2016 {
   
   import excel "C:\Users\Administrator\Desktop/`file'.xlsx", sheet("Sheet1") firstrow
   gen year=`file'
   save "C:\Users\Administrator\Desktop/`file'.dta",replace
   clear
   }
   试试参考下,这个,年份指的是excel的名称,我觉得你excel内部还包含多个sheet的话,在循环里面多写一个循环可能就行了

地板
肥羊爱地理 发表于 2019-12-24 11:54:16
军少 发表于 2018-3-21 20:43
哦哦,怪不得呢。

foreach file in 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 20 ...
大神你好,想请教一下您:
在stata中,例如数据我有company, year两列变量,我希望将其拆分为【company-year】例如【China-2011】为条目的若干份数据。
怎么样导出各个【company-year】的excel数据,然后用对应的变量的取值【company-year】(例如China2011.xls, China2012, US2011)来命名呢?

7
小小小小的我鸟 发表于 2020-8-31 15:20:07
军少 发表于 2018-3-21 20:43
哦哦,怪不得呢。

foreach file in 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 20 ...
老师您好,如果想合并excel中若干sheet的数据(每个sheet就两列 一个是代码stkcd 一列是数字),每一个sheet的stkcd是不完全一致的(已经踢掉了缺失的) 按照数据分布 应该是2018年的代码最全 所以 最终要以2018的stkcd来进行匹配 最终 汇总在一个excel中 有比较合适的方法吗 非常感谢老师的回复!

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

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