foreach循环运行但不给出结果

时间:2014-02-06 20:58:16

标签: stata

我在运行foreach循环时遇到问题。循环运行没有错误,但没有输出。有人能告诉我他们认为可能会发生什么吗?提前谢谢了!

以下是代码:

cd "O:\RESEARCH\ikhilko\Subway Big Data project"
local datafiles : dir . files  "*.txt"

foreach file in `datafiles' {
insheet using `file', 
clear
insheet using `file',
drop v9-v43
save date1, replace
}

更新:

有趣的是,当我只是在命令行输入代码时,代码会运行,而不是从.do文件中执行,任何想法可能会在那里发生什么?

2 个答案:

答案 0 :(得分:2)

重要的是要注意local宏正是这样的,即仅在本地定义和可见。

本地意味着

相同的互动会话

相同的程序

相同的do文件(或文件编辑器内容)

由选择

执行的do文件(或...)的相同部分

地方似乎在这里咬你。在一个地方定义的本地宏在另一个地方不可见。如果宏不可见,则本地宏引用将评估为丢失,即空字符串。

答案 1 :(得分:1)

调试的一些代码。 display本地datafiles的内容,以了解进入循环的内容:

local datafiles : dir . files "*.txt"
display `"`datafiles'"'

local wordx : word 1 of `datafiles'
display `"`wordx'"'

foreach file in `datafiles' {
    display "`file'"
}

(代码在评论部分格式不正确。)