5
是否可以在数据步骤的keep
中使用通配符?我想做以下(B型保持变量x和y的所有变量左连接A的开始用):通配符保留在数据步骤
data C;
merge A(in=a)
B(keep= x y var* in=b);
by x y;
if a;
run;
是否可以在数据步骤的keep
中使用通配符?我想做以下(B型保持变量x和y的所有变量左连接A的开始用):通配符保留在数据步骤
data C;
merge A(in=a)
B(keep= x y var* in=b);
by x y;
if a;
run;
是,使用:
。
data C;
merge A(in=a)
B(keep=x y a: in=b);
by x y;
if a;
run;
(这不是一个好主意,说in=a
,如果你有一个名为a
变量)。
如果你有一个序列号变量,如a1
,a2
,...,aN
,你可以写a1-aN
。如果您想要一组相邻列(例如varX
,varY
和varZ
物理上与数据集相邻),则可以使用varX--varZ
。这两个例子之间的区别只是你是否使用一个或两个短划线。
您好,非常感谢您的快速回复和澄清! – statquant
顺便说一句,我可以使用正则表达式或类似的选择列名? – statquant
不是直接。你可以通过一个单独的步骤;例如,您有dictionary.columns,它是包含当前会话中所有列名和表名的表。您可以在SQL中针对它运行查询,或者使用SAS等效的sashelp.vcolumn,针对它运行SAS datasteps。然后将结果存储在宏变量中,并在实际保留步骤中使用该宏变量。 – Joe