楼主: shi123_tian
1276 3

[原创博文] 数据集的合并问题- [推广有奖]

  • 0关注
  • 1粉丝

博士生

82%

还不是VIP/贵宾

-

威望
0
论坛币
153 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
24041 点
帖子
149
精华
0
在线时间
301 小时
注册时间
2008-2-18
最后登录
2020-5-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据集a1:(var1、var2 、var3和var4均为字符变量)
var1 var2 var3 var4
m1 n1  a1  b1
m1 n2  a2  b1
m2 n1  a3  b2


数据集a2:(va41和var2为字符变量,var5和var6为数值变量)
var1 var2 var5 var6
m1 n1  1    2
m1 n2  3    2
m2 n1  2    4

目的:想让数据集a1和a2进行合并,输出变量为var1 var2 var3 var4 var5 var6,
而且只要数据a2中有的观测,应该怎么编程?

谢谢诸位!
二维码

扫码加我 拉你入群

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

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

关键词:数据集 字符变量 输出变量 数值变量 怎么编程 怎么编程 而且

沙发
link7time 发表于 2012-2-2 17:19:46 |只看作者 |坛友微信交流群
  1. /*这个是你要合并过程,后来想了下你既然要合并,为啥只要b中的观测值不要a中的呢?*/
  2. data a;
  3. input var1$ var2$  var3$ var4$ @@;
  4. cards;
  5. m1 n1  a1  b1
  6. m1 n2  a2  b1
  7. m2 n1  a3  b2
  8. ;
  9. data b;
  10. input var1$ var2$  var5 var6 @@;
  11. cards;
  12. m1 n1  1    2
  13. m1 n2  3    2
  14. m2 n1  2    4
  15. ;
  16. data merge_ab merge_b;
  17. merge a b;
  18. by var1 var2;
  19. output  merge_ab;
  20. run;
  21. data ab;
  22. set merge_ab;
  23.    var3=.;
  24.    var4=.;
  25.    run;
  26. /*直接取b中的数据,然后把另外两个变量设空不就可以了么?
  27.    当然如果你要a中条件下,再选择b中的数据上面的程序可以满足你*/
  28. data b;
  29. input var1$ var2$  var5 var6 @@;
  30. cards;
  31. m1 n1  1    2
  32. m1 n2  3    2
  33. m2 n1  2    4
  34. ;
  35. proc sql;
  36. create table c as
  37. select var1,var2,. as var3,. as var4,var5,var6 from b ;
  38. quit;
复制代码

使用道具

藤椅
zhangzachary 发表于 2012-2-2 17:21:50 |只看作者 |坛友微信交流群
  1. proc sort data=a1; by var1 var2; run;
  2. proc sort data=a2; by var1 var2; run;
  3. data aa;
  4. merge a1 a2(in=aa);
  5. by var1 var2;
  6. if aa;
  7. run;
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

使用道具

板凳
baoaibaobao 发表于 2012-2-2 17:27:09 |只看作者 |坛友微信交流群
  1. data a;
  2. input obs var1$ var2$  var3$ var4$ @@;
  3. cards;
  4. 1 m1 n1  a1  b1
  5. 2 m1 n2  a2  b1
  6. 3 m2 n1  a3  b2
  7. ;
  8. data b;
  9. input obs var1$ var2$  var5 var6 @@;
  10. cards;
  11. 1 m1 n1  1    2
  12. 2 m1 n2  3    2
  13. 4 m2 n1  2    4
  14. ;
  15. proc sql noprint;
  16. create table want as
  17.         select b.*,a.var3,a.var4 from b b left join a a on a.obs=b.obs;
  18. quit;
复制代码

使用道具

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

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

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

GMT+8, 2024-4-28 21:47