楼主: 龙战于野
9191 10

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

  • 0关注
  • 0粉丝

已卖:121份资源

硕士生

96%

还不是VIP/贵宾

-

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

楼主
龙战于野 发表于 2014-11-3 23:08:18 |AI写论文

+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
拉您进交流群
GMT+8, 2025-12-31 02:53