我不知道如何從一個大文件中做到這一點,但我會寫一個循環將代碼分成ID組,然後做一個隨機抽樣。
%macro MACRO();
proc sql noprint;
select ID into :ID separated by " "
from Original_table
;
quit;
proc sql noprint;
select count (*) into :NumIDs
from Original_table
;
quit;
%let NumID = &NumIDs;
%do i = 1 %to &NumID %by 1;
%let loopID = %scan(&ID, &i, " ");
proc sql;
create table ID_&loopID. as
select *
from Original_table
where ID = &loopID.
;
quit;
proc surveyselect data = ID&loopID. method = SRS rep = 1
sampsize = 1 out = RandomID_&loopID.;
id _all_;
run;
proc append base = Id_Random_all
data = RandomID_&loopID.
;
quit;
%end;
%mend;
%MACRO();
proc append然後將它們全部添加到一個文件中來查看。 我確信有一個更簡單的方法來做到這一點,但這是我想到的。
你最終的目標是什麼?有幾種不同的方法可以做到,但有些方法比其他方法更有效。你是引導還是一次只需要一行? –