SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 873|回复: 6
打印 上一主题 下一主题

如何连接两个表

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-4-8 10:36:28 | 只看该作者

如何连接两个表

A表有50行数据 两个变量x和y .
X          Y

A          1
B          2
.........

B表就只有一行,两个变量PCTS PPTY:
pcts  ppty

3       6

我想将B表的这行连接到A表的每一行中,如果Y中的数字是2,我希望连接上后重复两次:
X      Y   pcts  ppty

A     1   3        6
B     2    3        6
B     2    3        6
....


谢谢!
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
沙发
发表于 2010-4-8 10:58:16 | 只看该作者

Re: 如何连接两个表

往下看“求问怎样用SAS复制多重行?”
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-4-8 11:00:58 | 只看该作者

Re: 如何连接两个表

[code:10a3hl4n]data a;
        input x $ y;
datalines;
A 1
B 2
;

data b;
        input pcts ppty;
datalines;
3 6
;

data c(drop=i);
        set a;
        if _n_=1 then set b;
        do i=1 to y;
                output;
        end;
run;[/code:10a3hl4n]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-4-9 08:43:03 | 只看该作者

Re: 如何连接两个表

不好意思,一来就发帖了,没注意看!
我还有个问题想问下 data b;
   set a
   do i=1 to 5;
   end;             
run;   为什么出来的i是6呢?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-4-9 13:02:01 | 只看该作者

Re: 如何连接两个表

i会继续往下做一次累加,然后判断是否越界,所以是6。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2010-4-9 13:18:50 | 只看该作者

Re: 如何连接两个表

谢谢了
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2010-4-10 09:36:33 | 只看该作者

Re: 如何连接两个表

data crackman1;
pcts=3;
ppty=6;
call symput('pcts',pcts);
call symput('ppty',ppty);
run;
data crackman;
input x$ y@;
pcts=&pcts.;
ppty=&ppty.;
cards;
a 1
b 2
c 3
d 4
e 5
f 6
;
run;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 12:28 , Processed in 0.129310 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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