楼主: oval
1230 2

[问答] 如何针对多列用HASH表实现VLOOKUP功能? [推广有奖]

  • 7关注
  • 2粉丝

已卖:8份资源

副教授

3%

还不是VIP/贵宾

-

威望
0
论坛币
860 个
通用积分
0
学术水平
6 点
热心指数
12 点
信用等级
10 点
经验
13824 点
帖子
368
精华
0
在线时间
891 小时
注册时间
2009-8-14
最后登录
2022-7-13

楼主
oval 发表于 2020-12-19 08:11:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
关于SAS hash表的使用,能否实现EXCEL的VLOOKUP功能:
这里如果一张表的不同列需要使用同一个hash表,能否在一个data步实现?
比如,希望从表A,根据表A的ID_N列数据查询表DIC表的ID列以后,得到表B(VLOOKUP),如下:
HASHpic.jpg
Excel中是在三列中分别使用VLOOKUP:=VLOOKUP(D20,$A$4:$B$17,2,0)
HASH1219.xlsx (10.62 KB)
请教这个问题在SAS中如何实现?
二维码

扫码加我 拉你入群

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

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

关键词:vlookup lookup Vlook HASH Look SAS

沙发
取什么都重名 发表于 2021-2-22 10:26:11
您好,请问这个问题你解决了吗?我也有同样的问题

藤椅
xuxuanqi13 学生认证  发表于 2021-2-26 10:13:19
a dumb way to do this but it works:
Basic idea: 有多少个column 那就rename 我们的dict 多少次

  1. data dict;
  2. infile datalines;
  3. input id $ number;
  4. datalines;
  5. a 1
  6. b 2
  7. c 3
  8. ;
  9. run;

  10. data have;
  11. infile datalines truncover;
  12. input id_1 $ number_1 id_2 $ number_2;
  13. datalines;
  14. a . b .
  15. c . d .
  16. ;
  17. run;

  18. data want;
  19. set have;
  20. if _N_ = 1 then do;
  21. declare hash h1(dataset:'work.dict(rename=(id=id_1 number=number_1)');
  22. h1.definekey('id_1');
  23. h1.definedata('number_1');
  24. h1.definedone();

  25. declare hash h2(dataset:'work.dict(rename=(id=id_2 number=number_2)');
  26. h2.definekey('id_2');
  27. h2.definedata('number_2');
  28. h2.definedone();
  29. end;
  30. rc1 = h1.find();
  31. rc2 = h2.find();
  32. run;
复制代码

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

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