【发布时间】:2022-01-06 08:36:27
【问题描述】:
如何在 Stata 中找到序列的缺失实例?
input seq
1
2
4
5
6
7
9
10
end
例如序列 1 到 10 中缺少 3 和 8。 如何找到它们?
我的尝试
list seq if !inrange(seq, 1,10)
但是,这不起作用。
【问题讨论】:
标签: statistics sequence analytics stata
如何在 Stata 中找到序列的缺失实例?
input seq
1
2
4
5
6
7
9
10
end
例如序列 1 到 10 中缺少 3 和 8。 如何找到它们?
我的尝试
list seq if !inrange(seq, 1,10)
但是,这不起作用。
【问题讨论】:
标签: statistics sequence analytics stata
Stata 使用 missing 来表示数据中带有缺失值代码的值。
这里的问题是识别数据集中可能已经(应该是?)但使用不同的词不存在的值。
这里有两种方法可以解决您的问题:
clear
input seq
1
2
4
5
6
7
9
10
end
numlist "1/10"
local expected `r(numlist)'
levelsof seq, local(observed)
local absent : list expected - observed
di "`absent'"
forval j = 1/10 {
quietly count if seq == `j'
if r(N) == 0 local ABSENT `ABSENT' `j'
}
di "`ABSENT'"
【讨论】:
sum seq 然后 numlist "`r(min)'/`r(max)'" 或 forval j = `r(min)'/`r(max)' { 取决于使用的方法
merge,并附上完整的序列;它的扩展性比循环好得多,并且不受 numlist 那样的限制