楼主: 龙战于野
8371 10

请教一下:SAS如何实现excel中的vlookup功能? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

97%

还不是VIP/贵宾

-

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

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

数据.xlsx (10.21 KB)



请教一下:SAS如何实现excel中的vlookup功能?

Exp:对于以下两组数据

Data A:

ID

Place

Gender

013

FZ

M

007

HF

F

008

HZ

F

017

NC

M

001

SH

F

Data B:

ID

X1

X2

X3

X4

X5

001

0.28

0.57

0.40

0.60

0.89

002

0.82

0.67

0.47

0.80

0.60

003

0.65

0.92

0.00

0.74

0.47

004

0.96

0.27

0.14

0.90

0.74

005

0.24

0.69

0.76

0.30

0.10

006

0.51

0.47

0.99

0.22

0.48

007

0.92

0.99

0.26

0.35

0.37

008

0.06

0.69

0.48

0.08

0.78

009

0.45

0.76

0.34

0.90

0.99

010

0.44

0.61

0.19

0.05

0.88

011

0.21

0.17

0.93

0.12

0.86

012

0.34

0.06

0.48

0.69

0.87

013

0.64

0.67

0.59

0.82

0.07

014

0.86

0.30

0.09

0.38

0.83

015

0.88

0.17

0.96

0.49

0.57

如何实现以下结果:

ID

Place

Gender

X1

X2

X3

X4

X5

013

FZ

M

0.64

0.67

0.59

0.82

0.07

007

HF

F

0.92

0.99

0.26

0.35

0.37

008

HZ

F

0.06

0.69

0.48

0.08

0.78

017

NC

M

0.00

0.00

0.00

0.00

0.00

001

SH

F

0.28

0.57

0.40

0.60

0.89

二维码

扫码加我 拉你入群

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

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

关键词:vlookup lookup EXCEL Vlook exce excel 如何

本帖被以下文库推荐

沙发
zxn2011 发表于 2014-11-3 23:56:40 |只看作者 |坛友微信交流群
sql
第一个表叫table1,第二个叫table2;可尝试如下代码
proc sql;
  create table table3 as
  select *
  from table1, table2
  where table1.ID=table2.ID
  order by table1.ID;
quit;

使用道具

藤椅
bullstag 发表于 2014-11-4 00:15:43 |只看作者 |坛友微信交流群
left join 不行吗

使用道具

板凳
shenliang_111 发表于 2014-11-4 10:31:06 |只看作者 |坛友微信交流群
zxn2011 发表于 2014-11-3 23:56
sql
第一个表叫table1,第二个叫table2;可尝试如下代码
proc sql;
用SQL 太流氓了~~ 哈哈... merge or hash join?

使用道具

报纸
zxn2011 发表于 2014-11-4 10:50:04 |只看作者 |坛友微信交流群
shenliang_111 发表于 2014-11-4 10:31
用SQL 太流氓了~~ 哈哈... merge or hash join?
把代码写出来比较一下,如果你不是就知道个名字的话

使用道具

地板
shenliang_111 发表于 2014-11-4 10:53:03 |只看作者 |坛友微信交流群
zxn2011 发表于 2014-11-4 10:50
把代码写出来比较一下,如果你不是就知道个名字的话
呵呵..身边没有SAS设备...个人的一点观点,欢迎拍砖...

用SAS实现表之间的关联 如果用proc sql,总感觉不地道~~

或者效率不够高,那是数据库的强项,而不是SAS的,

SAS式的解决方案目前只想到merge和hash,欢迎补充和好的建议~

一起进步

使用道具

7
sniperhgy 发表于 2014-11-4 13:28:31 |只看作者 |坛友微信交流群
shenliang_111 发表于 2014-11-4 10:53
呵呵..身边没有SAS设备...个人的一点观点,欢迎拍砖...

用SAS实现表之间的关联 如果用proc sql,总感觉 ...
貌似format也行的,就是创建格式的时候,费一点劲

使用道具

8
就喜欢马 发表于 2014-11-4 15:10:50 |只看作者 |坛友微信交流群
第一个表为a,第二个为b,合并后为c
  1. proc sort data=a;
  2. by id;
  3. proc sort data=b;
  4. by id;
  5. run;
  6. data c;
  7. merge a(in=t1) b(in=t2);
  8. by id;
  9. if t1=1;
  10. array num[*] _numeric_ ;
  11. do i=1 to dim(num);
  12. if num[i]=. then num[i]=0;
  13. end;
  14. run;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 根据规定进行奖励

总评分: 论坛币 + 20   查看全部评分

使用道具

9
bobguy 发表于 2014-11-5 04:29:05 |只看作者 |坛友微信交流群
There are many ways.
1) Hash object
2)Formats
3)SQL

Other way is using index. Here is an example.

data t1(index=(id));
  do i=5 to 10;
     id=put(i,z3.);
         if i<=8 then sex='F';
         else sex='M';
     output;
  end;
  keep id sex;
run;

data t2;
  do i=1 to 15;
     id=put(i,z3.);
         x=rannor(2);
     output;
  end;
  keep id x;
run;

options errors=0;
DATA t3;
SET t2;
SET t1 KEY=id/unique;
IF _iorc_ = 0;
run;

options errors=20;
proc print;run;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
shenliang_111 + 1 + 1 + 1 + 1 大神出现~

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

使用道具

10
龙战于野 发表于 2014-11-6 19:03:21 |只看作者 |坛友微信交流群
bobguy 发表于 2014-11-5 04:29
There are many ways.
1) Hash object
2)Formats
thank u so much!

使用道具

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

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

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

GMT+8, 2024-4-23 22:05