看板 Statistics 關於我們 聯絡資訊
測試幾個方法 以surveyselect而言,會漏一些 例如 C(6,3),應該會有20組排列組合 i=1 to 6 proc surveyselect noprint data=a out=b n=3 rep=20 method=srs; run; 我其實把我的問題簡化很多 我真正要求出的排列組合是 C(M1,N1)X C(M2,N2)X C(M3,N3)X.... 因此比較沒辦法以大量抽樣然後排除重複的方法產出 ※ 引述《tew (咖啡王子)》之銘言: : ※ 引述《liton (歐吉桑留學生)》之銘言: : 我會這麼做 : data a; : do i=1 to 100; : output; : end; : run; : proc surveyselect noprint data=a out=b n=50 rep=1000000 method=srs; : run; : proc transpose data=b out=b(drop=replicate _name_);by replicate; : run; : proc sort data=b nodup;by col1-col3; : run; : 基本上100取50 做出來大概花一分半 : 記憶體 3.68G : CPU I5 M430 : 既然不確定有幾組 就多抽樣幾次 再將重複值刪掉 應該就OK了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.71.218.254
west1996:說真的,如果總組合數沒有大到SAS吃不下的話,我覺得用 11/07 16:56
west1996:data step+do loop把每一個C(M,N)的那個M生出來,然後跟 11/07 16:57
west1996:自己用sql的cartesian product連乘N次去掉不合的,然後再 11/07 17:00
west1996:跟別的C(M',N')去做cartesian product,這個方法搞不好 11/07 17:01
west1996:比較簡單XD 11/07 17:01
liton:唉..那會有包不完的迴圈....這是最後一招 11/07 17:06
tew:規劃求解看看 col1-colM 值都設0與1 加總為N的所有解 11/07 17:35
ASD332:好奇一問最後要的結果是? 不是有把所有組合的pdf找到了? 11/07 19:07