如何從一個資料集中隨機取出 N 個樣本?
Step I: 先將資料編號
Step II: 造出 N 筆要選的編號.
Step III:merge 這二個檔.
data d; /* 造出1000的測試資料 */
do i=1 to 1000;
Val=i;
output;
end;
run;
Data A; /* 造流水號 irow */
set d;
keep Val irow;
Irow=_N_;
run;
Data B; /* 用 random 選出 100 筆
do i=1 to 100;
R_irow=ceil(1000*RANUNI(0)); * ranuni 選取 編號1-1000 , 取100 筆; *floor ;
output;
end;
run;
proc sql;/* 用B 編號, 取樣出要的值 */
create table mm as
select a.* from B left join a
on (b.R_irow=a.irow);
#如果資料不重覆, 不能重覆選取, 在B 選完後再取唯一. 才做 STEP3
文章標籤
全站熱搜
