我如何在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
}