如何從一個資料集中隨機取出 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

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 cianfen 的頭像
cianfen

cianfen的部落格

cianfen 發表在 痞客邦 留言(0) 人氣(2)