全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4125 20
2014-05-25
悬赏 70 个论坛币 已解决
想实现这个功能不知道怎么编有a、b、c、d、e、f等等按照从小到大排列的一列数
如图所示

a
b
c
d
e
f
h
首先比较第一个数与第二个数的差,即上图的 a与b的差
如果a-b》4 不用做任何处理 直接开始比较第二个数与第三个数的差(为上图的b与c的差比较规则同第一个数与第二个数的比较规则)

如果a-b<4 用a替换掉b 数据变为
a
a
c
d
e
f
h


然后接着比较第二个数与第三个数的差(此时第二个数被替换为a 所以比较的是a与c的差,规则同第一个数与第二个数比较)
然后循环比较完整个数列的值完成全部需要替换的数。

QQ截图20140525153928.png

这个是自己写的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
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-25 15:17:51
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-25 15:43:24
急求。。。还会酌情追加  如果没有看懂或者觉得我表述不清楚 麻烦您问我下 我尽力表达清楚麻烦了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-25 15:44:28
我来看看吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-25 16:01:23
lpw3582288 发表于 2014-5-25 15:43
急求。。。还会酌情追加  如果没有看懂或者觉得我表述不清楚 麻烦您问我下 我尽力表达清楚麻烦了!
x<-c(1,2,3,4)
for(i in 2:length(x)){
  if((x[i-1]-x)<4){
    x<-x[i-1]
  }else{   
    i<-i+1
  }
}
x
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-25 16:02:10
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群