楼主: yunxiangcao
12987 15

[原创博文] SAS程序如何实现在满足条件下重复拷贝上一行数据? [推广有奖]

11
soporaeternus 发表于 2013-11-19 15:47:28
carol1222 发表于 2013-11-13 11:50
没有看到这句
if SASDate ^=. then s=Nshrttl;
这是怎么样的逻辑啊???对于s来说??
当SASDate 不空的时候,把当前Nshrttl赋值给s
否则由于retain s 的值不变,还是上一行的值
Let them be hard, but never unjust

12
吕小布韦 发表于 2013-11-19 17:26:10
data a;
set b;
if x=. then x=lag(x);
run;

13
huangpengfei 发表于 2014-4-25 13:54:37
soporaeternus 发表于 2013-11-19 15:47
当SASDate 不空的时候,把当前Nshrttl赋值给s
否则由于retain s 的值不变,还是上一行的值
完全可以实现

14
yiqiangz 发表于 2014-4-25 20:50:10
  1. data a;
  2.   input x @@ ;
  3.   cards;
  4.   . 22 . . . 9 . . 17
  5.   ;
  6. run;

  7. data b;
  8.   set a;
  9.   retain y 0;
  10.   if x ne . then y=x;
  11.   if x eq . then x=y;
  12.   drop y;
  13. run;
复制代码

15
jeozu 发表于 2014-4-25 22:36:32
data b;
retain Nshrttl;
set a(rename=(Nshrttl=tmp));
if ^miss(tmp) then Nshrttl=tmp;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

16
jeozu 发表于 2014-4-26 07:33:52
carol1222 发表于 2013-11-13 11:50
没有看到这句
if SASDate ^=. then s=Nshrttl;
这是怎么样的逻辑啊???对于s来说??
如果SASDate存在的话,让s等于Nshrttl.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 15:38