SAS中文论坛

标题: 数据集的比较 [打印本页]

作者: shiyiming    时间: 2004-11-25 19:06
标题: 数据集的比较
有两个字段完全相同的数据集a,b,想对a,b数据集做比较,将a中所有在b中出现的record删除,请问如何做?
作者: shiyiming    时间: 2004-11-25 21:30
标题: 呵呵
这个贴子和置顶的程序员测试的贴子差不多一样。
不同的是,这个贴子要求的不只是一个ID相同,而是所有字段相同。
还有一点不同的是,这个贴子条件不明确,比如A集中有多个记录与B集全相同的,是删一个还是全删,还是删与B集数目相等的。
如果这些明确了,解决办法也就差不多有了。
作者: shiyiming    时间: 2004-11-25 22:50
标题: to ahuige
如果有多条记录匹配的话,删与B集中的数目相等的record。
我想知道是不是有比较两个数据集,返回包含相同或不同record的函数。
作者: shiyiming    时间: 2004-11-25 23:56
标题: 那如果B里面的纪录比A里面的多呢
条件不是很清楚

你能不能把条件罗列一下,或者举个例子
作者: shiyiming    时间: 2004-11-26 01:00
标题: have a try anyway
我理解你的意思是如果BASE的比TRAN多,则把与TRAN相等的OBS删除。如果BASE比TRAN少或相等,则把BASE的全部删除。如果BASE的在TRAN中不存在,则保存,如果TRAN的在BASE中不存在,则BASE继续
是这个意思吗
作者: shiyiming    时间: 2004-11-26 09:32
标题: to smartie
对的,是这个意思。
作者: shiyiming    时间: 2004-11-26 10:57
标题: 手头没有机器
大概的意思 使用
proc sql里面的 except all  
PROC SQL;
CREATE TABLE BASE AS
SELECT BASE.*
FROM BASE
EXCEPT ALL
SELECT TRAN.*
FROM TRAN

QUIT;

你试试
作者: shiyiming    时间: 2004-11-26 12:05
标题: to smartie
ok, 好用的,谢谢。
是不是sas里面涉及到几个数据集之间的操作,好用的方法就是proc sql了?
作者: shiyiming    时间: 2004-11-26 14:08
标题: 呵呵
想不到SAS能够支持这种不是常规的SQL语句.
不错,有意思,得好好学学.
作者: shiyiming    时间: 2004-11-26 21:48
标题: to ahuige
SAS SQL 有时候确实和想的不一样。前段时间无意中看到EXCEPT ALL和
EXCEPT 的区别,吓出一身冷汗,赶紧翻自己的程序,还好没用。侥幸逃过一劫。




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2