楼主: chenxianzhen
3036 3

[问答] 用sas怎么将后一列的数值填充前一列的缺失值,如果前一列不缺失,则不填充 [推广有奖]

  • 0关注
  • 2粉丝

已卖:177份资源

本科生

38%

还不是VIP/贵宾

-

威望
0
论坛币
532 个
通用积分
2.4140
学术水平
0 点
热心指数
11 点
信用等级
0 点
经验
316 点
帖子
12
精华
0
在线时间
148 小时
注册时间
2017-8-24
最后登录
2025-6-5

楼主
chenxianzhen 发表于 2018-11-27 10:45:16 |AI写论文
20论坛币
比如:
data a;
  input x1 x2 x3 x4;
  cards;
  1 2 3 .
  .  2 5 3
  2 .  6 4
  4 3  2 5

  ;
run;

生成
x1 x2 x3 x4
1   2   3    .
2   5   3    .
2   6   4    .
4   3   2    5
谢谢!



最佳答案

l1i2n3i4n5g 查看完整内容

data a; input x1 x2 x3 x4; cards; 1 2 3 . . 2 5 3 2 . 6 4 4 3 2 5 ; run; data b; set a; y=catx('.',of x1-x4); array x[*] x1-x4; do i=1 to dim(x); x=input(scan(y,i),best12.); end; keep x1-x4; run;
关键词:缺失值 Input cards card Data

沙发
l1i2n3i4n5g 在职认证  发表于 2018-11-27 10:45:17
data a;
   input x1 x2 x3 x4;
cards;
1 2 3 .
. 2 5 3
2 . 6 4
4 3 2 5
;
run;

data b;
   set a;
   y=catx('.',of x1-x4);
   array x[*] x1-x4;
   do i=1 to dim(x);
      x[i]=input(scan(y,i),best12.);
   end;
   keep x1-x4;
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

藤椅
learsaas 发表于 2018-11-27 14:14:31
为了20个论坛币,写一段:
  1. data  result;
  2.         set a;
  3.         array arrayNum x1-x4;
  4.         do i=1 to dim(arrayNum);
  5.                 if arrayNum(i)^=. then continue;
  6.                 do j=i+1 to dim(arrayNum);
  7.                         if arrayNum(j)^=. then do;arrayNum(i)=arrayNum(j);arrayNum(j)=.;leave;end;
  8.                 end;
  9.         end;
  10.         drop i j;
  11. run;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
linhaoran 发表于 2018-11-28 00:27:17
变量数少的话,用retain也行。代码啰嗦,但好理解。并且可以并进一步。

data a(drop = x1-x4);
retain y1 y2 y3 y4 .;
  input x1 x2 x3 x4 ;
  if x1 ne . then y1=x1;
  if x2 ne . then y2=x2;
  if x3 ne . then y3=x3;
  if x4 ne . then y4=x4;
  cards;
  1 2 3 .
  .  2 5 3
  2 .  6 4
  4 3  2 5
  ;
run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

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

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