全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5421 17
2012-02-01
如题,假如数据是
1
2
3
4
5

我想要的效果是
1   2
2   3
3   4
4   5
5   .
请问有什么方法吗?多谢各位
二维码

扫码加我 拉你入群

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

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

全部回复
2012-2-1 14:03:51
有个很笨的方法,倒序排序一下成54321再lag一个然后再顺序排回来……→→
二维码

扫码加我 拉你入群

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

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

2012-2-1 14:10:39
复制代码
二维码

扫码加我 拉你入群

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

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

2012-2-1 14:13:01
data test01;
        do id = 1 to 10;
                output;
        end;
run;
data test02(drop = id);
        retain id1;
        set test01 nobs = n;
        if _n_ = 1 then id1 = id;
        else do;
                id2 = id;
                output;
                id1 = id;
                if _n_ = n then do;
                        id2 = .;
                        output;
                end;
        end;
run;
二维码

扫码加我 拉你入群

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

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

2012-2-1 14:15:50
crighton 发表于 2012-2-1 14:03
有个很笨的方法,倒序排序一下成54321再lag一个然后再顺序排回来……→→
额。。。谢谢,这个1.2.3.4.5 只是举个例子。原始数据很麻烦。。。有上万个,对应着300个ID,每个ID大概包括几百条数据。我需要找出每个ID的第一条数据和最后一条数据,便于做后续的分析。我现在是想把ID 列的数据整体下降(LAG FUNCTION)和整体上升(? FUCNTION),用这3列数据相互运算,求出各个ID的起始,结束点。

数据本身不是完全的正序或倒序而是到一定数量就重头再来一遍,如果我要倒序的话会打乱ID对应的原数据顺序,即使我之后用BY ID 来整理,也不是原始数据的顺序了。所以我想知道有没有能直接把整列数据向上挪动的FUNCTION~
二维码

扫码加我 拉你入群

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

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

2012-2-1 14:20:41
zyzj1985 发表于 2012-2-1 14:15
额。。。谢谢,这个1.2.3.4.5 只是举个例子。原始数据很麻烦。。。有上万个,对应着300个ID,每个ID大概包 ...
需要找出每个ID的第一条数据和最后一条数据
这个可以by id 后用first.id last.id 找……
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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