Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何使用if忽略未出现的机构并执行rest命令_Loops_If Statement_Conditional Statements_Stata - Fatal编程技术网

Loops 如何使用if忽略未出现的机构并执行rest命令

Loops 如何使用if忽略未出现的机构并执行rest命令,loops,if-statement,conditional-statements,stata,Loops,If Statement,Conditional Statements,Stata,我有一个关于Stata循环的问题 我有多个机构:变量school\u code表示它们的ID,范围在1到10000之间。但有些代码没有出现在数据中 因此,我需要一个有条件的命令,例如,if,来帮助我忽略在给定年份中没有出现的机构。最直接的方法是从数据集(或数据集副本)中删除学校代码不在1到10000范围内的观察结果 drop if ! inrange(school_code,1,10000) 我们应该这样做 或者,可以将if子句应用于单个命令 regress y x1 x2 x3 if inr

我有一个关于Stata循环的问题

我有多个机构:变量
school\u code
表示它们的ID,范围在1到10000之间。但有些代码没有出现在数据中


因此,我需要一个有条件的命令,例如,
if
,来帮助我忽略在给定年份中没有出现的机构。

最直接的方法是从数据集(或数据集副本)中删除学校代码不在1到10000范围内的观察结果

drop if ! inrange(school_code,1,10000)
我们应该这样做

或者,可以将if子句应用于单个命令

regress y x1 x2 x3 if inrange(school_code,1,10000)

这个问题很模糊,没有(尝试使用)代码的例子。潜在的问题可能是当数据中没有出现这些值时,试图循环1到10000次。有关一组技术,请参见。看看如何提出一个好问题。嗨,尼克,谢谢你的回答。我尝试的代码如下:forvalue i=1(1)10000{use file4_1980_taiwan.dta,clear gen flagHost=(school_code=
i')by sort ut:egen flag2Host=sum(flagHost)drop if flag2Host==0捕获确认变量school_code if{by sort school_code:egen count=count(school_code)重复删除学校代码,强制保留学校代码计数gen host=
i'gen year=1980保存'i'\u 1980\u temp.dta,替换}请编辑您的问题;这样呈现的代码几乎是不可读的。虽然这是一种很好的技术,但我猜OP的问题是不同的。