看板 Statistics 關於我們 聯絡資訊
※ 引述《liton (歐吉桑留學生)》之銘言: : 假設我給定一個數字(例如說5) : 我想從中取出1~5的數列中 取出3個數字的排列組合 : 也就是C5取3 : 例如說{1,3,5}、{2,4,5}..然後塞到巨集中 : &Let Var_1=1; : &Let Var_2=3; : &Let Var_3=5; : 該怎麼寫比較快呢? 我會這麼做 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: 42.72.5.67
kenshin528:哈哈...我今天也是想到用亂數抽樣的方法XDDD 11/07 00:39
kenshin528:用更原始的方法 給每個數字一組亂數用rank排序取前三 11/07 00:39
kenshin528:理論上是會出現所有的組合才對 11/07 00:40
liton:我是要取出所有的排列組合.. 不是要抽樣 11/07 01:02
tew:以這種方法 會取出所有的組合 只要rep夠大就可以 11/07 08:56
bugle:這種方法實在不太可取...天曉得rep多大才夠大? 11/07 10:33
liton:好奇問一下,如果取樣數等於全布的排列組合 等於全抽? 11/07 11:50
tew:基本上 我是弄筆取樣組合多個100倍的數量再抽 11/07 12:19
tew:應該說 取樣後刪除重複的資料等於全分部的組合數 11/07 13:35
tew:就是全部都抽到 11/07 13:35