所以我正在处理具有数百万行的数据集。我试图减少行数,以便我可以通过zipcode合并这个数据集和另一个数据集。
我想要做的是选择一个特定的专栏" X6"并在其中搜索" 357"的值。然后,每个具有该值的行都要移动到新的数据集中。
我假设我将不得不使用某种形式的if / then声明,但我无法成功地完成任何工作。如果需要,我可以发布一些数据的快照或我目前拥有的SAS代码。我见过其他类似的东西,但没有一个涉及SAS。
感谢您提供的所有高级帮助。
答案 0 :(得分:3)
RamB提供了一种解析为两个数据集的好方法。 如果您只想要一个作为原始子集的新数据集,则以下内容将正常运行
DATA NEW;
SET ORIGINAL;
IF X6="357"; *NOTE: THIS ASSUMES X6 IS DEFINED AS CHARACTER*
RUN;
一个不错的函数也可以解析多个条件。假设你想保留X6 = 357或588的记录。
DATA NEW;
SET ORIGINAL;
IF X6 IN("357","588"); *NOTE: THIS ASSUMES X6 IS DEFINED AS CHARACTER*
RUN;
最后,NOTIN也可以排除。
答案 1 :(得分:2)
通过数据步骤,这非常简单。我给你举个例子。
data dataset_with_357
original_without_357;
set original_dataset;
if compress(x6) = "357" then output dataset_with_357;
else output original_without_357;
run;
正如我所说,有几种方法可以做到这一点,对我而言,哪种方式对你更好。
答案 2 :(得分:0)
只需使用Proc SQL创建数据集,然后在查询中引用您要查找的值 -
Proc SQL;
Create table new as
Select *
From dataset
Where x6 = 357
;
Quit;
假设你的x6变量是数字......
在移动设备上...抱歉没有代码文字