SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 857|回复: 4
打印 上一主题 下一主题

两个表合并的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-11-28 17:22:49 | 只看该作者

两个表合并的问题

我有两个correlation matrix表格,一个表左下角有数,另一个表右上角有数。怎么把两个表合成一个?

如:
表一:
variable var1 var2 var3
var1   1
var2   0.2 1  
var3   0.5  0.7 1

表一:
variable var1 var2 var3
var1   1 0.2 0.5
var2   .     1  0.7
var3   .     .      1
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-11-28 22:08:05 | 只看该作者

Re: 两个表合并的问题

is this meets your expectations?
data t1;
length var $4.;
input var $ var1 var2 var3 ;
datalines;
var1 1 . .
var2 0.2 1 .
var3 0.5 0.7 1
;
run;

data t2;
length var $4.;
input var $ var1 var2 var3 ;
datalines;
var1 1 0.2 0.5
var2 . 1 0.7
var3 . . 1
;
run;

*method 1;

data t;
merge t1 t2(rename=(var1=tvar1 var2=tvar2 var3=tvar3));
by var;
if missing(var1) then var1=tvar1;
if missing(var2) then var2=tvar2;
if missing(var3) then var3=tvar3;
drop tvar:;
run;

*method 2;
proc sql;
create table tt as
select a.var,coalesce(a.var1,b.var1) as var1,coalesce(a.var2,b.var2) as var2,coalesce(a.var3,b.var3) as var3
from t1 a join t2 b
on a.var eq b.var;
quit;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-11-29 01:06:32 | 只看该作者

Re: 两个表合并的问题

谢谢sun,再问一下啊,我有很多个variable,十几个,那么有没有更简便一点的方法呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-11-29 08:09:55 | 只看该作者

Re: 两个表合并的问题

或许可以用update
[code:2htgyrlh]data t3;
    update t1 t2;
    by var;
run;[/code:2htgyrlh]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-11-29 21:57:55 | 只看该作者

Re: 两个表合并的问题

<!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->  <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->  <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
这个可用,也简单,赞!撒花~~~~~~

[quote=&quot;hopewell&quot;:zvubh2zl]或许可以用update
[code:zvubh2zl]data t3;
    update t1 t2;
    by var;
run;[/code:zvubh2zl][/quote:zvubh2zl]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-9-6 21:40 , Processed in 0.082636 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表