SAS中文论坛

标题: 求助:如何筛选数据 [打印本页]

作者: shiyiming    时间: 2008-9-4 15:39
标题: 求助:如何筛选数据
我是个菜鸟,刚开始接触sas,希望大家指教。
有两个表,表1、表2
我希望选出表1中列1的值属于表2列1的行,不知道该怎么做
希望那位大侠帮帮忙阿~~~~~~~~
作者: shiyiming    时间: 2008-9-4 17:47
标题: Re: 求助:如何筛选数据
假设列1对应的变量var1,表1,表2分别为data1,data2
data data3;
merge data1(in=xxx) data2;
by var1;
if xxx;
run;
不知道是不是这样?
作者: shiyiming    时间: 2008-9-5 15:31
标题: Re: 求助:如何筛选数据
楼上的回复貌似有问题,两个表不是有序的吧。而且merge得到的属性明显多了
作者: shiyiming    时间: 2008-9-5 15:37
标题: Re: 求助:如何筛选数据
我希望选出表1中列1的值属于表2列1的行,
请把问题描述清楚,最好举一下例子, 这样大家就能明白你的要求.
作者: shiyiming    时间: 2008-9-5 15:47
标题: Re: 求助:如何筛选数据
你可以试试这么做. 比如表1:data1,表2:data2,第一列变量名:first

proc sort data=data1;
  by first;
run;
--------------------------
proc sort data=data2;
  by first;
run;
-------------------------
data temp;  
  merge data1(in=con1) data2(in=con2);
  by first;
  if data1 and data2;
run;
------------------------
proc print data=temp;
run;
作者: shiyiming    时间: 2008-9-5 15:51
标题: Re: 求助:如何筛选数据
楼上的是对两个表做合并,但这好像不是人家要求的吧?
人家要求的是:"我希望选出表1中列1的值属于表2列1的行,"
我不明白"表1中列1的值属于表2列1的行"是什么意思?
作者: shiyiming    时间: 2008-9-5 16:07
标题: Re: 求助:如何筛选数据
merge的作用之一就是找出相同关键字的行啊。

楼主不是说如果1表中第一个变量在2表中出现,就把1表的这一行挑出来么?

如果是这样,那么程序没错的说。。。
作者: shiyiming    时间: 2008-9-5 21:20
标题: Re: 求助:如何筛选数据
方法一:proc sql
方法二:merge
方法三:hash
方法四:format
根据数据集的具体情况自己选择方法,进攻参考




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