如何在Stata中使用ado包包含数据文件

如何在Stata中使用ado包包含数据文件,stata,Stata,如果我为Stata发布.ado包,我可以在.pkg说明文件的安装文件中包含.dta文件,使用如下行: f amazingdata.dta 然而,除了导航到用户选择的附加程序包的一个偏僻目录之外,用户如何加载这些数据尚不清楚。例如,是否有一种方法可以通过以下命令使.ado文件的数据文件可用: . sysuse amazingdata 您已经找到了包文件的文档,因此这似乎是一个关于sysuse是否安装了用户编写的包的问题,简短的回答是一个明确的否 sysuse是Stata用户访问StataCor

如果我为Stata发布.ado包,我可以在.pkg说明文件的安装文件中包含.dta文件,使用如下行:

f amazingdata.dta
然而,除了导航到用户选择的附加程序包的一个偏僻目录之外,用户如何加载这些数据尚不清楚。例如,是否有一种方法可以通过以下命令使.ado文件的数据文件可用:

. sysuse amazingdata

您已经找到了包文件的文档,因此这似乎是一个关于
sysuse
是否安装了用户编写的包的问题,简短的回答是一个明确的否

sysuse
是Stata用户访问StataCorp提供的数据集以支持官方命令的快捷方式。我没有尝试过,但我的猜测是,只要数据集放在Stata搜索的目录中,
sysuse
就可以处理任何数据集

然而,我认为这将是非常糟糕的风格。当Stata程序员发布以程序及其帮助文件为中心的包时,他们通常会提供测试数据集,但最好的标准是将这些文件标记为辅助文件,并允许用户使用
netget
将其下载到自己选择的位置。如前所述,这是一种选择

这一论点可以得到加强。最好将StataCorp自己的文件与其他文件严格隔离。这样,更新和升级、将文件复制到其他机器等都不太可能因为名称冲突而混淆或纠结。最有可能的情况是,您可能会安装或重新安装Stata并“忘记”用户编写的东西与StataCorp自己的文件混合在一起,并浪费时间试图找到它

在任何情况下,
sysuse
要像这样工作,用户必须在Stata搜索的位置手动安装文件,因为Stata的下载命令不会自动执行此操作


至于“让路”,这不是由你来决定的。许多用户都有非常严格的个人或工作场所规则,每个项目需要完全不同的目录或文件夹,因此,用他们自己的话说,将文件放在可以找到的地方是一个非常好的主意。换句话说,
netget
机制意味着用户可以谨慎地决定文件的去向。如果用户希望补充Stata关于搜索位置的规则,他们还可以操作自己的
adopath

结果是我误解了安装过程,我想要的功能在Stata中。我假设数据文件是自动安装的,但现在可以看到它们被认为是辅助的,需要额外的显式安装。完成此操作后,用户只需键入即可访问,例如,
use amazingdata
。完成。简单

如果用户选择安装软件包,则很可能他们希望能够像访问命令本身一样方便地访问激发新命令使用的示例数据。虽然我同意您关于
sysuse
命令的推理,但是对于选择安装软件包的用户,应该有类似
adouse
的东西。软件包文档明确允许安装.dta文件,这一事实似乎意味着安装本身意味着“相当谨慎”。然而,
netget
提供了本地安装的替代方案。adouse实际会做什么?如果我不清楚建议的内容,我不能同意或不同意。(对不起:)。如果用户安装了包含数据文件的ado软件包(例如,作为教学示例),那么应该有一个简单的命令将这些数据加载到内存a la
sysuse
。假设您已经安装了包含amazingdata.dta的包
amazingdata
,那么像
adouse amazingdata
这样简单的命令应该将其加载到内存中,而不必查找文件
amazingdata.dta
所在的位置。如果我作为一个用户安装了一个包含示例数据的软件包,我的期望是我不必承担太多额外的工作来访问它。我想我知道你想要什么,但是安装的数据文件的去向由你的
adopath
控制;如果您想用一种简单的方式访问这些内容,请注意
adopath
,或者编写自己的包装器,沿着
adopath
进行搜索。我认为你不需要StataCorp来编写这样的命令。