想实现这个功能不知道怎么编有a、b、c、d、e、f等等按照从小到大排列的一列数
如图所示
首先比较第一个数与第二个数的差,即上图的 a与b的差
如果a-b》4 不用做任何处理 直接开始比较第二个数与第三个数的差(为上图的b与c的差比较规则同第一个数与第二个数的比较规则)
如果a-b<4 用a替换掉b 数据变为
然后接着比较第二个数与第三个数的差(此时第二个数被替换为a 所以比较的是a与c的差,规则同第一个数与第二个数比较)
然后循环比较完整个数列的值完成全部需要替换的数。
这个是自己写的code 一直跑不出来结果不知道那错了 求指点
var6就是要处理的那列向量的名字
week是我自己重新设定的一个矩阵
use e4,clear
mat week=[38637]
local total=_N
forval i = 1/·total‘{
preserve
sort Date
local b= week[`i',1]
local a = var6[`i+1']
if `a'-`b'<4{
mat week=[week \ `a']
}
else{
mat week=[week \ `b']
}
restore
}