当数据集中的变量与变量列表匹配时,对数据集进行子集化

时间:2013-01-18 20:39:53

标签: sas subset

我正在处理sas中的一个数据问题。 我有一个日期集,包括1000个变量和每个变量1000条记录。 我有另一个变量列表,其中包含100个变量名称。 当数据集中的变量名与变量列表匹配时,我想要对第一个数据集进行子集化。

我尝试了proc mergeproc sql,但无法解决问题。 任何人都可以帮助我吗?

非常感谢

2 个答案:

答案 0 :(得分:2)

SAS使用方便命名的关键字“keep”和“drop”来保留或删除变量。如果您还没有以文本格式提供列表,PROC SQL可以帮助您生成列表。

data want;
set have;
keep var1 var2 var3 var4;
run;

如果数据集“vnames”中的变量列表中包含变量“tokeep”,则可以执行以下操作:

proc sql;
select tokeep into :keeplist separated by ' ' from vnames;
quit;

data want;
set have;
keep &keeplist.;
run;

PROC SQL正在获取'tokeep'的内容,而不是将它们选择到表或屏幕,将它们放在宏变量'keeplist'中的空格分隔列表中,然后将其用作参数。 '保持'声明。

答案 1 :(得分:0)

Here您可以找到如何将数据集的所有变量名称列表输出为另一个数据集。这样可以更容易地决定您将使用哪些大数据集以及您不会使用哪些数据集(例如,变量名称的左(或右)连接,然后查看行数至少是您的变量计数想拥有)。