Re: [問題] SAS排列組合

看板Statistics作者 (歐吉桑留學生)時間12年前 (2011/11/07 15:41), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串3/4 (看更多)
測試幾個方法 以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

11/07 16:56, , 1F
說真的,如果總組合數沒有大到SAS吃不下的話,我覺得用
11/07 16:56, 1F

11/07 16:57, , 2F
data step+do loop把每一個C(M,N)的那個M生出來,然後跟
11/07 16:57, 2F

11/07 17:00, , 3F
自己用sql的cartesian product連乘N次去掉不合的,然後再
11/07 17:00, 3F

11/07 17:01, , 4F
跟別的C(M',N')去做cartesian product,這個方法搞不好
11/07 17:01, 4F

11/07 17:01, , 5F
比較簡單XD
11/07 17:01, 5F

11/07 17:06, , 6F
唉..那會有包不完的迴圈....這是最後一招
11/07 17:06, 6F

11/07 17:35, , 7F
規劃求解看看 col1-colM 值都設0與1 加總為N的所有解
11/07 17:35, 7F

11/07 19:07, , 8F
好奇一問最後要的結果是? 不是有把所有組合的pdf找到了?
11/07 19:07, 8F
文章代碼(AID): #1EjukOPM (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1EjukOPM (Statistics)