楼主: 福德
1451 3

求:怎么处理公司报账 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
133 点
帖子
2
精华
0
在线时间
3 小时
注册时间
2011-8-6
最后登录
2012-3-14

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
用SAS软件怎么实现这样的功能:
公司报账要更改信息用的,数据量很大,以下是简化的。
x, z两列变量以z的变量为标准,在x变量里找到和z相等的值,然后把对应的y的值赋给w,如果在x里找不到与z相等的值,则赋为空

               最终w的值变为

x  y  z  w;      变化后   w                                 
1  6  1  2                     6
2  9  8  6                              
3  3  2                         9
4  3  3                         3
9  4  6  5                  


      请哪位大侠给于指点,将不胜感激     
二维码

扫码加我 拉你入群

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

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

关键词:怎么处理 sas软件 不胜感激 软件 信息 不胜感激

沙发
guoluo 发表于 2011-8-6 15:49:26 |只看作者 |坛友微信交流群
  1. data xyz(keep=x y z key) z(keep=z key);
  2. input x y z;
  3. key+1;
  4. datalines;
  5. 1  6  1
  6. 2  9  8
  7. 3  3  2
  8. 4  3  3
  9. 9  4  6
  10. ;

  11. proc sort data=xyz;
  12. by x;
  13. proc sort data=z;
  14. by z;

  15. data interim;
  16.   merge xyz(in=a) z(in=b rename=(z=x));
  17.   by x;
  18.   if a and b then do;
  19.     w = y;
  20.         output;
  21.   end;
  22.   keep key w;
  23. run;

  24. proc sort data=xyz;
  25. by key;
  26. proc sort data=interim;
  27. by key;

  28. data final;
  29.   merge xyz interim;
  30.   by key;
  31.   drop key;
  32. run;
复制代码
已有 1 人评分经验 收起 理由
crackman + 60 热心帮助其他会员

总评分: 经验 + 60   查看全部评分

使用道具

藤椅
ntsean 发表于 2011-8-7 11:27:54 |只看作者 |坛友微信交流群
假设你的x值没有重复的,如果有重复的,你的要定义取哪个

data old;
input x y z;
datalines;
1  6  1
2  9  8
3  3  2
4  3  3
9  4  6
;
run;

proc sql;
create table new as
select x,y,z, (select y from old where x=a.z) as w
from old a
;
quit;

使用道具

板凳
福德 发表于 2011-8-8 09:38:59 |只看作者 |坛友微信交流群
没想到这个论坛的人这么好,多谢多谢两位好心人。

使用道具

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

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

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

GMT+8, 2024-6-28 21:14