根据另一个变量中的条件循环一组变量

时间:2017-10-03 08:50:56

标签: stata

我有一个变量列表function_labels

变量a_23 a_24_1 a_24_2 a_24_3 a_24_4 a_24_5 a_24_6 a_24_7 a_24_8中的值基于a_24*中的响应。 如果a_23,则a_23==1中的至少一个变量必须等于1.

因此,如果a_24*

,我想检查任何变量a_24*是否包含值1

我尝试了下面的循环,

a_23==1

但它返回变量集中不包含1的所有变量。但是,如果确定变量等于1,我只需要所有变量都不包含值1的情况。

1 个答案:

答案 0 :(得分:0)

数据示例和代码是一个好主意,因此您可以将问题基于MCVE:请参阅https://stackoverflow.com/help/mcve以获取解释。

据我了解,中间变量在这里会有所帮助:

egen mina_24 = rowmin(a_24_*) 

当且仅当所有值都为0时,最小值才为0.

请注意你的循环

foreach var of varlist a_24_1* { 
    br a_23 a_24* if a_23 == 1 & `var' != 1 
}

是单个变量a_24_1的循环;大概是指a24_*行中的foreach