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