SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

各位大哥,小弟又来求助了!(关于数据集处理的程序)

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-2-22 11:17:11 | 只看该作者

各位大哥,小弟又来求助了!(关于数据集处理的程序)

[u:f7e0c]
下面有如下两个表:
表1:
Up/Down        TesterId        sliderec        slidertube        _freq_        Yield
D        CQP002        SGG        44415297        300        0.97666667
D        CQP002        SGG        45304200        47        0.9787234
D        CQP004        SGG        58172513        293        0.98293515
U        CQP067        SGG        58309841        197        0.98477157
U        CQP067        SGG        58336540        198        0.98989899
U        CQP067        SGG        58407837        97        1
D        CQP074        SGG        60446152        296        0.95945946
D        CQP074        SGG        60471406        32        1
U        CQP041        SGG        55991544        99        0.95959596
表2:
Up/Down        TesterId
D        CQP002
U        CQP067
D        CQP074
现在要筛选出表1中符合表2的数据,既表1中与表2中UP/DWON,TESTERID相同的,得结果如下:
Up/Down        TesterId        sliderec        slidertube        _freq_        Yield
D        CQP002        SGG        44415297        300        0.97666667
D        CQP002        SGG        45304200        47        0.9787234
U        CQP067        SGG        58309841        197        0.98477157
U        CQP067        SGG        58336540        198        0.98989899
D        CQP074        SGG        60446152        296        0.95945946
D        CQP074        SGG        60471406        32        1
请高手指点,如何写此程序?


[/u:f7e0c]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-2-22 13:48:53 | 只看该作者

ref

[code:51d88]data a1;
input id x y;
cards;
1 11 12
2 21 22
3 31 32
4 41 42
;
run;

data a2;
input id x;
cards;
2 21 23
3 31 33
;
run;


proc sql;
create table a3 as
select y from a1, a2
where a1.id=a2.id and a1.x=a2.x;
quit;[/code:51d88]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2006-2-22 14:56:39 | 只看该作者

谢谢!

首先特别感谢COLLEN大哥。
我以前写的和COLLEN是一样的,只是小弟有一不解。
proc sql;
create table LUOGF.C as select B.* from A,B
where A.testerid=B.testerid and
A.up_down=B.up_down AND A.PRODUCT=B.PRODUCT;
run;
是可以运行的,而下面的却不能运行。
proc sql;
create table LUOGF.C as select LUOGF.deltareport1.* from LUOGF.a,LUOGF.deltareport1
where LUOGF.a.testerid=LUOGF.deltareport1.testerid and
LUOGF.a.up_down=LUOGF.deltareport1.up_down;
run;
这两者的区别是上面的A,B数据集是放在WORK临时库中的,而下面的数据集A,DELTAREPORT1是放在永久逻辑库LUOGF中的。大哥知道这是为什么吗?
顺便问一下,如果生成的数据集中有几个变量,我想调换其中两个变量出现先后的顺序,是否有这样的函数什么的?谢谢!!!!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2006-2-22 15:08:07 | 只看该作者

@

大哥谈不上,我还年轻啊。

我没有太情愿看你的数据集,觉得定义变量和库名字都有点怪。建议你再仔细检查一下吧,应该没有问题。

调换变量顺序可以用sql、retain等多种方法,最简单的用keep=**。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2006-2-23 08:47:43 | 只看该作者

谢谢!

非常感谢!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 17:45 , Processed in 0.072719 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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