楼主: richardqmul
6936 20

请教一个关于local list dir .的问题.谢谢 [推广有奖]

  • 0关注
  • 3粉丝

VIP

已卖:33份资源

大专生

35%

还不是VIP/贵宾

-

威望
0
论坛币
922 个
通用积分
58.9980
学术水平
7 点
热心指数
11 点
信用等级
1 点
经验
853 点
帖子
49
精华
0
在线时间
39 小时
注册时间
2007-3-17
最后登录
2025-11-14

楼主
richardqmul 发表于 2008-5-19 20:18:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

我有个文件夹里有多个dta 文件。 请问怎么提取每个文件。以下是我在stata 的运行步骤

. ****************************************use marco to record all the files name*********************
.
. local list : dir . files"*.dta"

.
. dis `list'
1.dtaorbis_usa_2943-2950.dtaorbis_usa_2951-2960.dtaorbis_usa_2961-2970.dtaorbis_usa_2971-2980.dtaorbis_usa_2981-2990.dtaorbis_u
> sa_2991-3010.dtaorbis_usa_3011-3030.dtaorbis_usa_3031-3050.dtaorbis_usa_3051-3080.dtaorbis_usa_3081-3100.dtaorbis_usa_3101-
> 3120.dtaorbis_usa_3121-3148.dtaorbis_usa_6425-6450.dtaorbis_usa_6451-6490.dtaorbis_usa_6491-6528.dtatemp.dta

.
. dis `"`list'"'
"1.dta" "orbis_usa_2943-2950.dta" "orbis_usa_2951-2960.dta" "orbis_usa_2961-2970.dta" "orbis_usa_2971-2980.dta" "orbis_usa_29
> 81-2990.dta" "orbis_usa_2991-3010.dta" "orbis_usa_3011-3030.dta" "orbis_usa_3031-3050.dta" "orbis_usa_3051-3080.dta" "orbis
> _usa_3081-3100.dta" "orbis_usa_3101-3120.dta" "orbis_usa_3121-3148.dta" "orbis_usa_6425-6450.dta" "orbis_usa_6451-6490.dta"
>  "orbis_usa_6491-6528.dta" "temp.dta"

.
.
.
. ****************************************insert space between each files name*********************
.
. local name=subinstr(`"`list'"', "dta", "dta ",  .  )

.
. dis `name'
1.dta orbis_usa_2943 not found
r(111); 

. foreach filename in `name' {
  2.
. use `filename', clear
  3.
. }
(all firms from files Orbis_)
invalid file specification
r(198);

.
程序在. dis `name' 命令中, 出错了. foreach命令不能进行。

请帮忙指出错误..谢谢

二维码

扫码加我 拉你入群

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

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

关键词:Local list dir IST OCA 请教 Local list dir

回帖推荐

arlionn 发表于4楼  查看完整内容

. dis "`name'"1.dta orbis_usa_2943 not foundr(111); . foreach filename in `name' {  2. . use "`filename'", clear  3. . }

本帖被以下文库推荐

沙发
liujiafei 发表于 2008-5-20 00:29:00
小声问一句,编这个有用吗?

藤椅
richardqmul 发表于 2008-5-20 00:35:00

是的, 对我的数据整理有用.

文件夹里有多个dta 文件. 但执行的DO-files 命令将都是一样的. 每个dta 都是400M 以上, append 不了. 要能foreach 每个dta文件名,会省大量的时间. 谢谢

板凳
arlionn 在职认证  发表于 2008-5-20 08:05:00

. dis "`name'"
1.dta orbis_usa_2943 not found
r(111);

. foreach filename in `name' {
  2.
. use "`filename'", clear
  3.
. }

已有 1 人评分论坛币 热心指数 收起 理由
crystal8832 + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

报纸
蓝色 发表于 2008-5-20 09:46:00

不错啊

local list : dir . files"*.dta"

在stata的programming reference上面介绍的详细

[此贴子已经被作者于2008-5-20 9:57:46编辑过]

地板
davalic 发表于 2008-5-20 10:42:00
arlionn,还是不能成功,怎么把文件名有空格的“`name‘”显示出来,大家继续试试

7
蓝色 发表于 2008-5-20 11:23:00

可以啊

8
davalic 发表于 2008-5-20 11:36:00

 local list : dir . files"*.dta"

. local name=subinstr(`"`list'"', "dta", "dta ",  .  )


. dis "`name'"

这一部成功了吗

9
蓝色 发表于 2008-5-20 12:30:00


. ****************************************use marco to record all the files name*********************
.
. local list : dir . files"*.dta"

.
. dis `list'
auto.dtatraindata.dtajspmix.dta

.
. dis `"`list'"'
"auto.dta" "traindata.dta" "jspmix.dta"


. ****************************************insert space between each files name*********************

. local name=subinstr(`"`list'"', "dta", "dta ",  .  )


. dis `name'
auto.dta traindata.dta jspmix.dta

.
. foreach filename in `name' {
  2.                  use "`filename'", clear
  3.                  }
(1978 Automobile Data)

.
end of do-file

.

10
davalic 发表于 2008-5-20 14:06:00

 local name=subinstr(`"`list'"', "dta", "dta ",  .  )

. dis `name'
1.dta no variables defined
r(111);

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

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