楼主: marakesh
1316 3

[问答] 关于一个观测缺失时,如何用下一个不缺失的值进行替换 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

62%

还不是VIP/贵宾

-

威望
0
论坛币
2247 个
通用积分
0.1367
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
381 点
帖子
26
精华
0
在线时间
330 小时
注册时间
2017-12-20
最后登录
2024-3-15

10论坛币
在编程时遇到了如下问题
我的数据中有一部分值是缺失的。
比如col1 obs5是缺失的,这个情况下我想用col1的obs6来替换,让obs5的观测值等于obs6.
请问该如何操作?
谢谢!
关键词:如何用 如何操作 obs 观测值
沙发
lovexialulu 发表于 2018-4-16 16:38:02 |只看作者 |坛友微信交流群
  1. data a;
  2. input col1 @;
  3. cards;
  4. 1 . 3 . 4 . 7 . . 0
  5. ;
  6. run;

  7. %macro jj(ind,out);
  8. data _null_;
  9. set &ind end=eof;
  10. call symputx(cats('var',_n_),col1);
  11. if eof then symputx(tot,_n_);
  12. run;

  13. data &out.;
  14. set &ind ;
  15. %do i=1 %to %eval(&tot. -1);
  16.   %let j=%eval(&i+1);
  17. if _n_=&i and col1 eq . then col1=&&var&j.;
  18. %end;
  19. run;

  20. data check;
  21. set &out.;
  22. if col1=. then do; put "war" "ning: Pls continue using macro jj " col= ;output;end;
  23. run;

  24. %mend jj;
  25. %jj(a,b);
  26. %jj(b,c);
复制代码

使用道具

藤椅
Tigflanker 发表于 2018-4-17 14:02:14 |只看作者 |坛友微信交流群
单缺:
  1. data have;
  2.   do _n_ = 1 to 10;
  3.     i = ifn(_n_ = 5,.,_n_);
  4.     output;
  5.   end;
  6. run;

  7. data want;
  8.   set have end = last;
  9.   position = _n_ + 1;
  10.   if ~ last then set have(keep = i rename = i=ix) point = position ;
  11.   i = ifn(missing(i),ix,i);
  12. run;
复制代码
连缺:
  1. data have;
  2.   do _n_ = 1 to 10;
  3.     i = ifn(_n_ in (5, 6),.,_n_);
  4.     output;
  5.   end;
  6. run;

  7. data x(keep = obs i);
  8.   set have;

  9.   obs = _n_;
  10. run;

  11. data want;
  12.   set have end = last;

  13.   if _n_ = 1 then do;
  14.     dcl hash h(dataset:'x');
  15.         h.definekey('obs');
  16.         h.definedata('i');
  17.         h.definedone();
  18.   end;

  19.   do while(~last and missing(i));
  20.     obs = max(_n_, obs) + 1;
  21.         h.find();
  22.   end;
  23. run;
复制代码

使用道具

板凳
marakesh 发表于 2018-4-24 12:53:17 |只看作者 |坛友微信交流群
Tigflanker 发表于 2018-4-17 14:02
单缺:连缺:
非常感谢!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 18:37