全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3398 8
2011-10-15
我有dataset A, 含有一列元素mw,我想把新建一列元素new_mw,将第一行设为. 其他依次下移,最后一个元素舍弃。
mw                                    newmw
1                                        .
2                                       1
3                                       2
4                                       3
5                                       4
6                                       5

我是这么写的
data dummy;
input mw;
datalines;
.
;
run;

proc append base=dummy data=A;
run;

data dummy;
set dummy end=last;
if last then delete;
run;

data dummy;
set dummy;
newmw=mw;
keep newmw;
run;

data A;
merge  A dummy;
run;

我觉得写的太丑陋了,我想请教各位怎么样写的简洁一点,谢谢.
另外,因为这个处理方法我在程序中需要用很多次,我希望可一写成macro,但是
data dummy;
input mw;
datalines;
.
;
run;
貌似不能写在macro中,所以我希望可以改进程序。
二维码

扫码加我 拉你入群

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

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

全部回复
2011-10-15 07:39:55
Using lag function,

newmw=lag1(mw);
二维码

扫码加我 拉你入群

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

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

2011-10-25 05:20:12
bobguy 发表于 2011-10-15 07:39
Using lag function,

newmw=lag1(mw);
谢谢,简洁明了
二维码

扫码加我 拉你入群

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

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

2011-10-25 08:35:04
像这种问题如果知道lag函数就很容易解决,不知道的话自己要忙活一大堆。
我觉得学习sas比较难的一点是:
在有需求的时候,比如楼主需要实现lag函数的功能,但是不知道sas是否有实现这个功能的函数,就算估计sas会有这样的函数,但是也不知道去哪里找这个函数名。

恩..这个问题希望有谁能分享下解决经验
二维码

扫码加我 拉你入群

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

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

2011-10-25 08:59:30
google "SAS lag" 就行了
二维码

扫码加我 拉你入群

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

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

2011-10-25 14:31:50
邢不行 发表于 2011-10-25 08:35
像这种问题如果知道lag函数就很容易解决,不知道的话自己要忙活一大堆。
我觉得学习sas比较难的一点是:
...
到人大论坛悬赏提问。
如果没有钱的话,姿态低一些也可以。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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