如何通过Dropbox或私人网站发布Stata计划?

如何通过Dropbox或私人网站发布Stata计划?,stata,tableofcontents,Stata,Tableofcontents,这是一个示例程序.do文件,sampleprog.do: program sampleprog egen newVar = group (`1' `2') end 我怎样才能把它发布到我的网站(或dropbox)上,这样其他人就可以像这样把它安装到他们的Stata上 net from http://www.mywebsite.com/sampleprog.do *** or may be like like this: ssc install ... 我阅读了关于stata.toc…的文档,

这是一个示例程序
.do
文件,
sampleprog.do

program sampleprog
egen newVar = group (`1' `2')
end
我怎样才能把它发布到我的网站(或dropbox)上,这样其他人就可以像这样把它安装到他们的Stata上

net from http://www.mywebsite.com/sampleprog.do
*** or may be like like this:
ssc install ...
我阅读了关于
stata.toc
…的文档,但我没有完全理解。我应该上传哪些文件,应该是一个文件夹还是什么


(注:我当然可以通过电子邮件发送
.do
文件,但这不是我的选择。)

以下是如何使用自己的网站与他人共享程序或数据文件的完整说明。我尝试使用Dropbox,但Stata12似乎与https有问题,https是所有Dropbox公共链接的协议。如果你想使用Dropbox,我建议你创建一个共享文件夹,在你的合作者的机器上同步。本答案的其余部分假设您有一个通过http提供页面服务的网站,或者正在使用支持https的Stata 13

如果这是一次性的,您可以将文件放在您的网站上,并告诉您的合作者键入以下内容,从而跳过此答案的其余部分:

. copy http://your-site.com/ado/program.ado program.ado
这将把指定url处的
ado
文件复制到用户的当前目录中。如果您想提供有关文件的信息,计划与多人共享,并且需要维护/记录一组文件,请继续阅读

步骤1在您的网站上创建一个文件夹以保存程序。我将调用我的
ado/

步骤2添加要共享的程序文件、帮助文件和数据文件。对于本例,我创建了一个名为
unique.ado
的简单
ado
文件,其内容如下:

********************************************** unique.ado
capture program drop unique
program define unique
    *! Count and number observations within group defined by varlist
    *  Example: unique person_id, obs(prow) tobs(pcount) sortby(time)
    *           to count and number rows by a variable called person_id
    syntax varlist, obs(name) tobs(name) [sortby(varlist)]
    bys `varlist' (`sortby') : gen long `obs' = _n
    bys `varlist' (`sortby') : gen long `tobs' = _N
    la var `obs' "Number of this row within `varlist' group."
    la var `tobs' "Total number of rows with identical `varlist' values."
end
步骤3创建一个名为
stata.toc
的文件来描述您希望共享的文件。这是我的:

********************************************** stata.toc
v 3
d Program to count observations by group
p unique [The unique.ado program for counting observations by group]
这些文件可能很复杂。这里我将不介绍许多功能,但您可以了解更多

步骤4
stata.toc
中以字母
p
开头的行定义的每个包创建一个包文件。这是我在上面定义的
唯一
包的包文件:

********************************************** unique.pkg
v 3
d unique
d Program to count observations by group
d Distribution-Date: 28 June 2012
f unique.ado
您的目录现在如下所示:

ado/
    stata.toc
    unique.ado
    unique.pkg
步骤5使用该网站!以下是要输入的命令

. net from http://example.com/ado/
. net describe unique
. net install unique
以下是输入第一个命令后将看到的内容:

-----------------------------------------------------------------------------------
http://www.example.com/ado/
Program to count observations by group
-----------------------------------------------------------------------------------

PACKAGES you could -net describe-:
    unique            [The unique.ado program for counting observations by group]
-----------------------------------------------------------------------------------
第二个命令将告诉您有关包的更多信息
net descripe unique

---------------------------------------------------------------------------------------
package unique from http://www.example.com/ado
---------------------------------------------------------------------------------------

TITLE
      unique

DESCRIPTION/AUTHOR(S)
      Program to count observations by group
      Distribution-Date: 28 June 2012

INSTALLATION FILES                               (type net install unique)
      unique.ado
---------------------------------------------------------------------------------------
checking unique consistency and verifying not already installed...
installing into /Users/cpoliquin/Library/Application Support/Stata/ado/plus/...
installation complete.
第三个命令将安装软件包
net install unique

---------------------------------------------------------------------------------------
package unique from http://www.example.com/ado
---------------------------------------------------------------------------------------

TITLE
      unique

DESCRIPTION/AUTHOR(S)
      Program to count observations by group
      Distribution-Date: 28 June 2012

INSTALLATION FILES                               (type net install unique)
      unique.ado
---------------------------------------------------------------------------------------
checking unique consistency and verifying not already installed...
installing into /Users/cpoliquin/Library/Application Support/Stata/ado/plus/...
installation complete.
编辑


请参见下面答案中尼克的评论。我希望这个例子很简单,我不希望其他人使用这个程序。如果你打算把东西提交给Stata Journal或SSC,那么他的评论肯定适用!我希望这个答案能为那些对官方文件感到困惑的人提供一个不错的指导。

这篇文章太长,无法发表评论,所以这将是一个额外的答案

  • 您的示例使用程序名
    unique
    。如果您
    search unique,all
    (或在Stata 13中,
    search unique
    ),您会发现自1998年以来,SSC上安装了一个同名的用户编写程序。如果(且仅当)您的用户试图使用您的程序以及之前的程序,这将为他们创建名称冲突。更一般的建议是
    搜索
    ,查看程序名是否已在使用中,以避免出现这些问题

  • 具体来说,尽管您可能只是将您的
    unique
    用作任意示例,但请注意它包含bug。
    int
    包含的位不足以精确保存大型数据集的观测值。另外,就风格而言,
    unique
    可以更改数据的排序顺序,这被广泛认为是糟糕的数据管理风格

  • 您的示例涉及在没有附带帮助文件的情况下传播程序文件。可以说,SSC站点永远不会接受这样的计划,《国家统计局杂志》甚至不会在编写帮助文件之前审查基于此类提交的论文。在代码中包含解释性注释可能足以满足您的个人实践,但它低于一般Stata标准

  • Stata 13现在支持https。见第3.6节


  • 简言之,我很感激您试图解释如何做某事,但它已经有很好的文档记录,并且您的一些建议显式和隐式地低于社区标准

    如果需要.toc文件,您至少可以从文档中获得一些提示。它将依次列出一个或多个其他文件。注意:SSC不适用于仅供同事使用的.do文件。它适用于质量合理且普遍感兴趣的程序。定义程序的do文件最好是ado文件。良好的实践要求ado文件应始终与帮助文件一起分发。我建议您在
    中使计数变量
    变长
    。对于非常大的数据集,
    float
    类型也不够。