繁体   English   中英

Stata:使用局部变量在Stata中构建程序

[英]Stata: using local variables to build a program in Stata

我想根据程序用户的兴趣进行回归。

例如,我想运行以下回归,并能够更改输入

reg喜欢在学校#女性#治疗

我有多种偏好选项,例如数学,科学,艺术等......

我想要的是什么样的

local preference = math (where I can choose the others as well)

local compareSchooling = Y
local compareGender = Y

reg preference inSchool#female#treatment

if compareSchooling=Y & compareGender=Y {
test 1.inSchool#1.female#1.treatment = 0.inSchool#0.female#1.treatment
}

这背后的动机是其他人可以轻松地使用该程序来定制他/她的分析。

但是,我很难让机械师工作。

如果你对实现有更好的了解,那么我全都听见了。

谢谢!

在您的示例中很难确定需要程序的一般问题。

另外,当你询问Stata程序时,Stata程序员倾向于想象你期望编写program和那种方式来定义一个新命令,但是你真的需要在这里写一个新命令并不是很明显。

我认为regresstest的例子可以针对不同的变量重复运行。

但有些细节不明确。 什么是Y 或者它只是一种表示“是”的方式? 如果你以交互方式运行它,那么使用本地宏将是徒劳的,因为你只需要将一个名称放入本地宏并再次取出它。

如果您确实编写了一个程序,那么您需要使用帮助文件对其进行记录,以解释它的功能,否则最低限度。 出于什么目的? 那么,用户(您或其他人)可以重复两个具有不同细节的命令? 那里的收益不明确。

到目前为止,我理解你的问题,主要需要的不是程序,而是

  1. 将重复的命令放在do-file中并允许该do-file接受参数。 这是一个被低估的可能性。 参见[U]手册,16.4

  2. 了解使用foreach循环循环变量。

注意:“局部变量”不是标准的Stata术语; 它们总是被称为“本地宏”。 在Stata中,变量是数据集中的列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM