全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1858 3
2014-10-20
比如,
3688
3595
3932
3329
4128
4154
4086
4474
4476
4484
4518
4532
4540
4577
如果某一个观测比上一个小,那么把它取值为上一个*1.01,保证这一列数严格递增,程序如何实现,求教!
二维码

扫码加我 拉你入群

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

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

全部回复
2014-10-20 22:21:17
如果不嫌弃我的方法笨的话,请参考。
data test_b;
    set test_a;
    flg = lag(item);*item为原数据集的变量名;
    if missing(flg) then item1 = item;*首行数据存储;
    else do;
        if flg < item then item1 = item*1.01;
    end;    *item1为结果;
run;


没调试过,LZ试下吧。
二维码

扫码加我 拉你入群

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

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

2014-11-9 14:29:24
xiuzhenning 发表于 2014-10-20 22:21
如果不嫌弃我的方法笨的话,请参考。
data test_b;
    set test_a;
多谢赐教!已经解决,思路类似哈哈。。
二维码

扫码加我 拉你入群

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

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

2014-11-9 19:35:46
上面那个方法好像达不到效果。
复制代码
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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