【发布时间】:2017-07-02 17:43:41
【问题描述】:
我们在 Stata 进行研究,是一个由多名研究人员组成的不断变化的团队。在当前项目中,我们有来自多个 wave 的数据,为此我创建了不同的 do-file 来清理原始数据并合并 wave。我把所有这些都放在一个文件夹中,这样文件夹“数据”包含子文件夹“Wave1”、“Wave2”等,每个文件夹都包含几个数据文件夹(例如,原始数据、干净数据等)。 )。
每一波都以相同的方式组织。由于文件夹结构是线性的,我可以在“Data”中有一个主do-file,它可以灵活地读出计算机目录(cd“`c(pwd)'/”),这样对于后续do-file的所有调用我只是添加子文件夹(例如,使用“Wave 1/Raw data/x.dta”)。这样一来,我可以避免团队中的人员在每次使用机器上的文件时更改目录。
如果我有几个项目,而我的文件夹“Data”仅在其中一个中:我如何告诉我在文件夹“Project2”中的分析 do-file 主 do-file 位于它的兄弟“Project1”(例如“Project1/Data/”)不知道计算机的根目录(使其在我们所有的计算机上都灵活)?
我尝试了简单的解决方案,使用 cd ../,但是:
cd "`c(pwd)'/"
cd ../
do "Project1/Data/y.do"
没有帮助,因为当我多次运行 do-file 时,它会上升到目录路径,因为它似乎记得它第一次读入的路径并每次都在其上执行 cd ../。因此,在第一次运行时一切正常,在第二次运行时,它最终会在层次结构中更高的一个文件夹,等等。
有没有办法删除do-file开头的目录内存?还是有什么其他方式?我什么也找不到。然而,这似乎很简单。
【问题讨论】: