【问题标题】:How to include data files with ado packages in Stata如何在 Stata 中将数据文件包含在 ado 包中
【发布时间】:2014-04-07 07:56:22
【问题描述】:

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

f amazingdata.dta

但是,除了通过导航到用户选择的附加包的偏僻目录之外,尚不清楚用户如何加载这些数据。例如,有没有办法通过以下命令使 .ado 文件的数据文件可用:

. sysuse amazingdata

【问题讨论】:

    标签: stata


    【解决方案1】:

    您已经找到了包文件的文档,所以这似乎是一个关于sysuse 是否会安装用户编写的包的问题,​​简短的回答是肯定的。

    sysuse 旨在作为 Stata 用户访问 StataCorp 提供的数据集以支持官方命令的一种快速简便的方式。我没有尝试过,但我的猜测是sysuse 可以与任何数据集一起使用,只要该数据集放置在 Stata 搜索的目录中。

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

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

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

    至于“偏僻”,这不是你能决定的。许多用户有非常严格的个人或工作场所规则,每个项目都需要完全不同的目录或文件夹,因此仅将文件放在可以非常有意识地找到的地方,就他们自己而言,这是一个非常好的主意。否则,net get 机制意味着用户决定,无论是否谨慎,文件的去向。如果用户希望补充 Stata 关于搜索位置的规则,他们还可以操纵他们的adopath

    【讨论】:

    • 如果用户选择安装软件包,他们很可能希望像访问命令本身一样轻松访问激发使用新命令的示例数据。虽然我同意你对sysuse 命令的推理,但对于选择安装软件包的用户来说,应该有类似adouse 的东西。软件包文档明确允许安装 .dta 文件这一事实似乎暗示了安装本身暗示了“非常慎重”。但是,net get 确实提供了本地安装的替代方案。
    • adouse 实际上会做什么?如果我不清楚某项建议的含义,我无法同意或不同意。
    • (对不起:)。如果用户安装了包含数据文件的 ado 包(例如作为教学示例),那么应该有一个简单的命令将这些数据加载到内存中,例如 sysuse。假设已经安装了包amazing,其中包括amazingdata.dta,那么像adouse amazingdata 这样简单的命令应该将其加载到内存中,而不必寻找文件amazingdata.dta 所在的位置。如果我作为用户安装了一个包含示例数据的包,我的期望是我不必承担太多额外的工作来访问它。
    • 我想我知道你想要什么,但是安装的数据文件的去向由你的adopath 控制;如果您想要一种简单的方法来访问它们,请注意您的 adopath 或编写您自己的包装器以沿着 adopath 搜索。我认为你不需要 StataCorp 来编写这样的命令。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多