Stata 如何为本地宏中的每个文件设置特定的文件顺序

Stata 如何为本地宏中的每个文件设置特定的文件顺序,stata,stata-macros,Stata,Stata Macros,我在Stata中有一个循环,它引用一个本地宏,我用它来运行几个操作(创建一个文件,运行与每个文件相关联的脚本等等) 一切都很好,但我想更改循环中读取文件的顺序,默认情况下是按字母顺序 我的循环如下所示: foreach file of local myfiles { noisily display as text "some text" } 除了display命令之外,脚本还会继续使用我的代码 有没有办法自定义循环对本地宏中存储的文件进行寻址的顺序 我希望在不更改文件名的情况下实现这一

我在Stata中有一个循环,它引用一个本地宏,我用它来运行几个操作(创建一个文件,运行与每个文件相关联的脚本等等)

一切都很好,但我想更改循环中读取文件的顺序,默认情况下是按字母顺序

我的循环如下所示:

foreach file of local myfiles {
    noisily display as text "some text"
}
除了
display
命令之外,脚本还会继续使用我的代码

有没有办法自定义循环对本地宏中存储的文件进行寻址的顺序


我希望在不更改文件名的情况下实现这一点。

以下内容适合我:

local myfiles myfile1.dta myfile2.dta myfile3.dta myfile4.dta

tokenize `myfiles'

foreach x in `3' `1' `4' `2' {
    display "`x'"
}

myfile3.dta
myfile1.dta
myfile4.dta
myfile2.dta
另一种方法是:

local myfiles myfile1.dta myfile2.dta myfile3.dta myfile4.dta

local mf myfile2.dta myfile3.dta
local myfiles `mf' `: list myfiles - mf'

display "`myfiles'"
myfile2.dta myfile3.dta myfile1.dta myfile4.dta

以下是我的作品:

local myfiles myfile1.dta myfile2.dta myfile3.dta myfile4.dta

tokenize `myfiles'

foreach x in `3' `1' `4' `2' {
    display "`x'"
}

myfile3.dta
myfile1.dta
myfile4.dta
myfile2.dta
另一种方法是:

local myfiles myfile1.dta myfile2.dta myfile3.dta myfile4.dta

local mf myfile2.dta myfile3.dta
local myfiles `mf' `: list myfiles - mf'

display "`myfiles'"
myfile2.dta myfile3.dta myfile1.dta myfile4.dta