Stata应该递归搜索用户添加的领养目录吗?

时间:2016-07-18 22:42:37

标签: stata

我在Windows 8.1上使用Stata 14.1并将我的个人.ado文件移动到GitHub存储库。这将foo.ado放在“C:/ Users / Richard / Documents / GitHub / foo /”中,bar.ado放在“C:/ Users / Richard / Documents / GitHub / bar /”中,依此类推。

我使用adopath将GitHub根目录添加到adopath + "C:/Users/Richard/Documents/GitHub/",但Stata没有搜索.ado文件的“foo”,“bar”和其他子目录。我通过添加带有adopath + "C:/Users/Richard/Documents/GitHub/foo"的foo.ado存储库来修复此问题,依此类推。

我希望Stata以递归方式搜索“C:/ Users / Richard / Documents / GitHub /”,因为它会对BASESITEPLUS执行此操作。递归搜索是否仅限于默认的adopath目录?

公平地说,向adopath添加十个目录并不困难,但我想遵循最佳实践。除了adopath1996 FAQ之外,我找不到help adopath的更多内容。

1 个答案:

答案 0 :(得分:5)

Stata并不完全递归搜索BASE,SITE和PLUS。它搜索每个目录,并在目录中,将在一个子目录中搜索,该子目录的名称是要搜索的命令的第一个字母。

在PERSONAL中,我创建了子目录f并将其放置在foo.ado中。当我在Stata的命令窗口中输入命令foo时,Stata找到foo.ado并在其中运行该程序。

这并不能直接解决您的问题,但它确实表明Stat会将PERSONAL与其他目录保持一致,从而降低说服StataCorp实施您的建议的可能性,但确认您的解决方案似乎是&#34 ;最佳实践"比如他们。

在我的Mac上,我将目录f重命名为gnxl,然后在终端窗口中重命名

cd ~/Library/Application Support/Stata/ado/personal
ln -s gnxl/foo.ado .

之后,退出并重新启动Stata后,foo命令按预期执行。也许这为您指明了一个方向,通过一些自动化来生成符号链接,因为在您的存储库中创建了新的ado文件。我不知道GitHub是否足够知道它的框架是否可行。