我如何在Stata中使用下面的代码,并告诉它在计算平均值时忽略某些观察值?

我如何在Stata中使用下面的代码,并告诉它在计算平均值时忽略某些观察值?,stata,Stata,上一个线程: 代码是 local last = _N - 1 foreach v in `r(varlist)' { su `v' in 1/`last', meanonly replace `v' = r(mean) in L } 如何告诉Stata在计算平均值时忽略第3行、第62行和第99行?我不明白为什么要排除最后一行,为什么要使用替换。但是,要排除单个行,可以使用if语句、inlist()和\n 例如: if!inlist(\n,1)将排除第一行 在您的情况下,

上一个线程:

代码是

local last = _N - 1 
foreach v in `r(varlist)' { 
    su `v' in 1/`last', meanonly 
    replace `v' = r(mean) in L 
}

如何告诉Stata在计算平均值时忽略第3行、第62行和第99行?

我不明白为什么要排除最后一行,为什么要使用
替换
。但是,要排除单个行,可以使用
if
语句、
inlist()
\n

例如:
if!inlist(\n,1)
将排除第一行

在您的情况下,代码应如下所示(不包括第3、62、99行和最后一行(
\N
):


你应该交叉参考上一个线程。有关指导信息,请参见
中的帮助和
中的帮助。假设排除特定观测值有充分的理由,最好使用一条规则来明确说明。OP的前一条线程解释了排除最后一个观测值的原因:它用于存储平均值。我在那个帖子的评论中极力反对这种做法。有用的答案(+1),但我删掉了“宏”这个词的一个短暂但不正确的用法。谢谢。说到stata,我仍然在为正确的术语而挣扎。
local last = _N - 1 
foreach v in `r(varlist)' { 
    su `v' if !inlist(_n, 3, 62, 99, _N), meanonly 
    replace `v' = r(mean) in L 
}