[英]Display data in Stata loop
我在Stata 12中有一个循环,它查看文件中的每条记录,如果找到等于1的flag
,则会生成五个估算值。 我的代码如下所示:
forvalues i=1/5 {
gen y3`i' = y2
gen double h`i' = (uniform()*(1-a)+a) if flag==1
replace y3`i' = 1.6*(invibeta(7.2,2.6,h`i')/(1-invibeta(7.2,2.6,h`i')))^(1/1.7) if
flag==1
}
a
在其他地方定义。 我要检查各个归因。 因此,最好仅在flag
= 1的情况下才显示估算变量。 我还想在旁边显示另一个值s
。 我需要帮助弄清楚语法。 我已经尝试了所有可以想到的引号和下标的组合,但始终收到错误消息。
我想到了另一种有用的修改。 假设我要在其上执行此例程的三个串联文件。 让他们有一个等于1、2或3的变量文件。我想为每个变量设置一个单独的种子,并在程序中进行操作,因此我有一条记录。 我设想这样的事情:
forvalues j=1/3 {
set seed=12345 if file=1
set seed=56789 if file=2
set seed=98765 if file=3
insert code above
}
这样行吗?
您未显示的代码无法发表评论,但“显示”一词可能会误导您。
list y3`i' if flag == 1
或某些变化可能是您想要的。 请注意, display
是一次最多显示一行输出。
PS:当您是威廉·莎士比亚时,请知道杯子http://www.stata.com/giftshop/much-ado-mug/的灵感来自您的工作。
一个附属问题询问每次围绕一个循环选择不同的种子。 很简单:
forval j = 1/3 {
local seed : word `j' of 12345 56789 98765
set seed `seed'
...
}
要么
tokenize 12345 56789 98765
forval j = 1/3 {
set seed ``j''
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.