楼主: ybhk
1058 3

数据集合并求助 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

2%

还不是VIP/贵宾

-

威望
0
论坛币
39 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1115 点
帖子
84
精华
0
在线时间
94 小时
注册时间
2012-6-2
最后登录
2017-10-22

楼主
ybhk 发表于 2015-4-22 14:40:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有两个数据集A 和B 分别有三个变量
数据集A
a1 a2 a3
1  .     3
.    2   1
2    1   .
1  .     3
.    2   1
2    1   .

数据集B
b1 b2 b3
2    1   1
1    2   1
现想用数据集B中的数据依次来填补数据集A中的缺失,形成下面数据集C这样的结果,怎么用SAS实现?谢谢
数据集C
a1 a2 a3
1   1    3
2    2   1
2    1   1
1    2   3
1    2   1
2    1   1






二维码

扫码加我 拉你入群

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

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

关键词:数据集

沙发
ybhk 发表于 2015-4-22 21:39:54
自己回复一下  求助

藤椅
learsaas 发表于 2015-4-22 21:51:39
方法一:hash,个人认为是最好的方法,不过不想写了。
方法二:iml,也不错,不过也不想写了。
方法三:macro,一个普遍大众化的方法,就写一下:
%macro a;
        data t;
                set a;
                row=_n_;
        run;
        %do i=1 %to 3;
        data t1 t2;
                set t(keep=row a&i);
                if a&i=. then output t2;
                else output t1;
        run;
        data  t2;
                merge t2 b(keep=b&i rename=(b&i=a&i));
        run;
        data X;
                set t1 t2;
                by row;
        run;
        %if &i eq 1 %then %do;
                data C;
                        set X(drop=row);
                run;
        %end;
        %else %do;
                data C;
                        merge C X(drop=row);
                run;
        %end;
        %end;
%mend a;
%a;

板凳
ybhk 发表于 2015-4-22 22:24:56
learsaas 发表于 2015-4-22 21:51
方法一:hash,个人认为是最好的方法,不过不想写了。
方法二:iml,也不错,不过也不想写了。
方法三:m ...
非常感谢

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-21 14:36