本文介绍了查找次小值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对于每个观测值,我希望获得变量的最后五个观测值中的第二个最小值。
您知道我必须使用哪个命令吗?
* Example generated by -dataex-. To install: ssc install dataex
clear
input str5 var1 str26 var2
"Value" "2nd smallest of previous 5"
"8" ""
"0" ""
"4" ""
"5" ""
"0" ""
"6" "0"
"8" "0"
"10" "4"
"8" "5"
"8" "6"
end
推荐答案
原始问题:最后5个中的第2个
另一种方法是将5个中的倒数第二个作为较低的四分位数返回:
. sysuse auto, clear
(1978 Automobile Data)
. quietly su mpg in -5/L , detail
. di r(p25)
23
修改后的问题:前5个问题中的第2个
* Example generated by -dataex-. To install: ssc install dataex
clear
input data min2f5
8 .
0 .
4 .
5 .
0 .
6 0
8 0
10 4
8 5
8 6
end
mata:
mata clear
real second(real colvector X) {
if (rows(X) < 5) return(.)
X = sort(X, 1)
return(X[2])
}
end
gen long id = _n
* install just once
ssc inst rangestat
rangestat (second) data, interval(id -5 -1)
list
+------------------------------+
| data min2f5 id second1 |
|------------------------------|
1. | 8 . 1 . |
2. | 0 . 2 . |
3. | 4 . 3 . |
4. | 5 . 4 . |
5. | 0 . 5 . |
|------------------------------|
6. | 6 0 6 0 |
7. | 8 0 7 0 |
8. | 10 4 8 4 |
9. | 8 5 9 5 |
10. | 8 6 10 6 |
+------------------------------+
这篇关于查找次小值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!