0
我有一個具有多個屬性的數據集,每個屬性在主表中各有10-15行。我希望在數據集上使用do循環,這將允許我分別提取每個屬性的輸出。我關心的是如何在提取前一個屬性的輸出後自動選擇do循環中的屬性?SAS:動態執行循環屬性選擇
在此先感謝。
我有一個具有多個屬性的數據集,每個屬性在主表中各有10-15行。我希望在數據集上使用do循環,這將允許我分別提取每個屬性的輸出。我關心的是如何在提取前一個屬性的輸出後自動選擇do循環中的屬性?SAS:動態執行循環屬性選擇
在此先感謝。
我不完全確定你要做什麼,但我希望能夠展示do循環的基本思想。
%macro YOUR_MACRO();
%let YOUR_VARIABLE = 1 2 3 ...; /*This could be whatever you want to split up from your master table*/
%let NUM_VAR = 3; /*Change this to the number of YOUR_VARIABLEs listed*/
%do i = 1 %to &NUM_VAR. %by 1;
%let LOOP_VAR = %scan(&YOUR_VARIABLE., %i.);
/*This do i = 1 starts your loop at 1 and goes up by 1 until your NUM_VAR is reached*/
proc sql;
create table TABLE_&LOOP_VAR. as /*Creates a specific table for each variable*/
select *
from MASTER_TABLE
where COLUMN_NAME = &LOOP_VAR. /*Splits up your table by a certain attribute equaling the loop variable*/
;
quit;
%end;
%mend;
%YOUR_MACRO(); /*Runs your loop*/
這是基本的結構,應該給一點幫助。您也可以只掃描主表中的每個變量名稱,然後將其分開,而不必輸入每個變量名稱。
我認爲如果您提供了一些樣本數據,前後都會更容易回答。你的問題目前還不清楚 – Longfish
你是什麼意思的多個屬性?那是多個變量?提到主表是令人困惑的。數據示例可能會有所幫助。 – Murray
您是否打算爲每個屬性獲取單獨的數據集?爲什麼?你的最終目標是什麼?你爲什麼說「做循環」 - 賠率是做循環不需要,是否是一個要求? – Joe