Stata/Loops删除15000个观测值中的每9-15个观测值
我试图创建一个循环,从包含15000个观测值的数据集中删除每9-15个观测值。语法是什么Stata/Loops删除15000个观测值中的每9-15个观测值,loops,stata,Loops,Stata,我试图创建一个循环,从包含15000个观测值的数据集中删除每9-15个观测值。语法是什么 drop if mod(_n, 9) == 0 将删除观察结果9、18、27等。同样的原则也适用于任何其他正整数。一般来说,你不应该在观察值上循环,因为几乎肯定有一个更有效、更优雅的解决方案,正如Nick在上文提到的丢失时丢弃(道岔)解决方案。不过,我想你是一个新的Stata用户,所以我将运行一个假设的。假设您确实希望将观察值放置在某个范围内,而不是基于次要变量,如道岔。总的战略可以如下: 以15人为一
drop if mod(_n, 9) == 0
将
删除
观察结果9、18、27等。同样的原则也适用于任何其他正整数。一般来说,你不应该在观察值上循环,因为几乎肯定有一个更有效、更优雅的解决方案,正如Nick在上文提到的丢失时丢弃(道岔)
解决方案。不过,我想你是一个新的Stata用户,所以我将运行一个假设的。假设您确实希望将观察值放置在某个范围内,而不是基于次要变量,如道岔
。总的战略可以如下:
以15人为一组进行分组观察(我想这里有id
列)。在下面的解决方案中,我假设您没有此列
在每组中,将观察结果放在第9-15位
欢迎来到Stack Overflow,但请只关注您遇到的技术问题。你的需要不是一个标准。真正的问题在我回答下面的评论中给出。谢谢你,但出于某种原因,这不太管用。如果你看一看我共享的图像,我正在尝试删除没有变量“trutch”值的观测值。drop if missing(trutch)
// Group observations
gen group = ceil(_n/15)
// Within each group, drop in the 9-15 locations
by group: drop if inrange(_n,9,15)