[英]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
和那种方式来定义一个新命令,但是你真的需要在这里写一个新命令并不是很明显。
我认为regress
和test
的例子可以针对不同的变量重复运行。
但有些细节不明确。 什么是Y
? 或者它只是一种表示“是”的方式? 如果你以交互方式运行它,那么使用本地宏将是徒劳的,因为你只需要将一个名称放入本地宏并再次取出它。
如果您确实编写了一个程序,那么您需要使用帮助文件对其进行记录,以解释它的功能,否则最低限度。 出于什么目的? 那么,用户(您或其他人)可以重复两个具有不同细节的命令? 那里的收益不明确。
到目前为止,我理解你的问题,主要需要的不是程序,而是
将重复的命令放在do-file中并允许该do-file接受参数。 这是一个被低估的可能性。 参见[U]手册,16.4
了解使用foreach
循环循环变量。
注意:“局部变量”不是标准的Stata术语; 它们总是被称为“本地宏”。 在Stata中,变量是数据集中的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.