如何结合多个KEEP,DROP和RENAME语句,特别是在将它们与IN语句结合时?例如,似乎只有一个DATA步骤就可以实现以下目的:
data temp;
set set_1 (keep = key var1-var5);
run;
data want;
merge set_2
temp (in= whatwewant);
by key;
if whatwewant;
run;
我将如何仅执行一个数据步骤?
还有一个类似的问题:例如,如何在数据步骤中结合KEEP和RENAME语句?最近,我遇到了几个实例,在这些实例中,我想合并两组在不同名称中具有不同名称的变量集,但是我只想保留其中任一变量的适当子集。在这种情况下,根据我的知识,当我认为可以在单个步骤中完成此操作时,实际上我需要三个数据步骤来完成此操作。我一直在做这样的事情:
data temp1 (rename = (key1=key));
set set_1 (keep= key1 var1-var5);
run;
data temp2 (rename = (key2=key));
set set_2 (keep=key2 othervar1-othervar4);
run;
data want;
merge temp1
temp2;
by key;
run;
同样的问题:我如何在一个数据步骤中做到这一点?
答案 0 :(得分:3)
您可以将IN,KEEP,DROP或RENAME放在相同括号内的相同选项框中。
在您的第一种情况下:
data want;
merge set_2
set_1 (in= whatwewant keep = key var1-var5);
by key;
if whatwewant;
run;
第二种情况:
data want;
merge set_1 (keep= key1 var1-var5 rename = (key1=key))
set_2 (keep= key2 othervar1-othervar4 rename = (key2=key));
by key;
run;