楼主: oldbridge
16784 21

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

  • 3关注
  • 5粉丝

已卖:265份资源

讲师

36%

还不是VIP/贵宾

-

威望
0
论坛币
4859 个
通用积分
10.0701
学术水平
6 点
热心指数
5 点
信用等级
5 点
经验
15065 点
帖子
213
精华
0
在线时间
716 小时
注册时间
2007-5-25
最后登录
2024-12-9

楼主
oldbridge 发表于 2013-12-31 08:15:45 |AI写论文
20论坛币
问题描述:
       本人有700家公司的excel,按照顺序命名为002001-002700,每个excel中都有时间,时间范围是2004-1-1至2009-12-31,还有x、y两个指标。
问题是:
       我想把700家数据合在一个stata数据中,为了数据分析方便,我想保留时间维度和x、y两个变量,并生成新的名称变量用于识别各个数据出处。我怎么设置具体的命令,谢谢,本人用的是stata12.0

关键词:EXCEL Stata 批量导入 xcel tata excel 如何 命名

回帖推荐

本帖被以下文库推荐

沙发
ywh19860616 发表于 2013-12-31 08:15:46
  1. cd "C:\Documents and Settings\data"
  2. local myfilelist: dir . files "*.xls"
  3. foreach filename of local myfilelist {
  4.   import excel using `"`filename'"',firstrow clear
  5.   local filenm = subinstr(`"`filename'"', ".xls", "", .)
  6.   renvars, pref(a`filenm')
  7.   gen id=_n
  8.   save `filenm'.dta, replace
  9. }

  10. use 002001,clear
  11. forv i=2/3 {
  12. merge 1:1 id using 00200`i'.dta
  13. drop _merge
  14. }
复制代码
一份耕耘,一份收获。

藤椅
oldbridge 发表于 2013-12-31 09:44:31
抱歉,二楼的用不了,谢谢你的热心回复,另外,我的excel格式是csv形式的,怎么做,再次感谢

板凳
ywh19860616 发表于 2013-12-31 09:48:01
oldbridge 发表于 2013-12-31 09:44
抱歉,二楼的用不了,谢谢你的热心回复,另外,我的excel格式是csv形式的,怎么做,再次感谢
把所有的csv文件都放在某一个目录下,比如C:\Documents and Settings\data,下面命令实现的就是把
各个文件横向排列起来,比如原来的是id x1 y1;id x2 y2等等,现在就是把他们放在一个文件csv内,变量名
为id x1 y1 x2 y2等。


  1. cd "C:\Documents and Settings\data"
  2. local myfilelist: dir . files "*.csv"
  3. foreach filename of local myfilelist {
  4.   insheet using `"`filename'"',clear
  5.   local filenm = subinstr(`"`filename'"', ".csv", "", .)
  6.   renvars, pref(a`filenm')
  7.   gen id=_n
  8.   save `filenm'.dta, replace
  9. }

  10. use 002001,clear
  11. forv i=2/3 {
  12. merge 1:1 id using 00200`i'.dta
  13. drop _merge
  14. }
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
freeolina + 1 + 1 + 1 精彩帖子
kerrydu + 1 + 1 + 1 观点有启发

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

一份耕耘,一份收获。

报纸
oldbridge 发表于 2013-12-31 10:16:25
oldbridge 发表于 2013-12-31 09:44
抱歉,二楼的用不了,谢谢你的热心回复,另外,我的excel格式是csv形式的,怎么做,再次感谢
unrecognized command:  renvars,另外,我的每一个excel中都有相同的日期变量,还分别有x、y 两个变量,我的想法是最终的合并的是有四个变量,第一个是每个样本id(即需要每个excel对应生成一个id),第二个是时间,第三个是x;第四个是y,谢谢

地板
oldbridge 发表于 2013-12-31 10:19:53
ywh19860616 发表于 2013-12-31 09:48
把所有的csv文件都放在某一个目录下,比如C:\Documents and Settings\data,下面命令实现的就是把
各个文件 ...
. local myfilelist: dir . files "*.csv"

. foreach filename of local myfilelist {
  2.   insheet using `"`filename'"',clear
  3.   local filenm = subinstr(`"`filename'"', ".csv", "", .)
  4.   renvars, pref(a`filenm')
  5.   gen id=_n
  6.   save `filenm'.dta, replace
  7. }
(3 vars, 2666 obs)
unrecognized command:  renvars
r(199);

7
ywh19860616 发表于 2013-12-31 10:32:09
oldbridge 发表于 2013-12-31 10:16
unrecognized command:  renvars,另外,我的每一个excel中都有相同的日期变量,还分别有x、y 两个变量, ...
renvars这个是外部命令,先安装
ssc install renvars,all replace
一份耕耘,一份收获。

8
oldbridge 发表于 2013-12-31 10:47:44
oldbridge 发表于 2013-12-31 10:19
. local myfilelist: dir . files "*.csv"

. foreach filename of local myfilelist {
. ssc install renvars,all replace
ssc install: "renvars" not found at SSC, type -findit renvars-
(To find all packages at SSC that start with r, type -ssc describe r-)
r(601);
我怎么解决,谢谢了

9
oldbridge 发表于 2013-12-31 10:51:10
ywh19860616 发表于 2013-12-31 10:32
renvars这个是外部命令,先安装
ssc install renvars,all replace
我知道了,谢谢了

10
ywh19860616 发表于 2013-12-31 10:51:52
oldbridge 发表于 2013-12-31 10:47
. ssc install renvars,all replace
ssc install: "renvars" not found at SSC, type -findit renvars-
...
findit renvars
然后点击跳出来的下面这个页面


SJ-5-4  dm88_1  . . . . . . . . . . . . . . . . .  Software update for renvars
        (help renvars if installed) . . . . . . . . .  N. J. Cox and J. Weesie
        Q4/05   SJ 5(4):607
        trimend() option added and help file updated
一份耕耘,一份收获。

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

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