我在运行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文件中执行,任何想法可能会在那里发生什么?
答案 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'"
}
(代码在评论部分格式不正确。)