Re: [問題] SAS迴圈問題?

看板Statistics作者 (咖啡王子)時間15年前 (2010/12/17 20:27), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串3/3 (看更多)
其實並不用這麼複雜 如果你的資料是10000筆 你只是想要把資料前100筆跑一個 第二個100筆跑另外一個 那麼 data a; set a; order=int((_n_-1)/100); run; proc sort;by order; run; proc reg noprint outest=b tableout; model y=x1-xn; by order; quit; order會是0~99 那麼t b檔案就有你需要的所有資料 而且結果不會輸出到output 速度相對上會快上許多 也不需要有%macro的語法 ※ 引述《liton (歐吉桑留學生)》之銘言: : ※ 引述《tottier (透抽)》之銘言: : : 我匯入的資料是10,000筆 : : 資料型態為第一組:1~100,第二組:101~200.....以此類推 : : 每100個為一組資料 : : 所以總共有1000組 : : 而每一組資料我要算一個p-value值 : : 所以我應該會得到1000個p-value值 : : 請問應該要怎麼寫迴圈 : 這個有點複雜 我講的大概 : 首先你得先確定你要輸出的參數的dataset : SAS不同回歸程式 輸出的方式都不盡相同 : 最直接的是開ODS trace on; 可以參考以下這篇文章 : http://t3873229.blogspot.com/2008/12/ods.html : 確定參數的dataset之後 : %macro OOXX; : %do i=1 %to 100; : ODS output 你查到的參數dataset=&if &i ne 1 %then para_tmp %else para; : proc 跑回歸 : data=&i (轉成不同組的dataset) : &if &i ne 1 %then %do; : data para; : set para para_tmp; : proc dataset; : delete para_tmp; : %end; : %macro ooxx; : %ooxx; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.232.240.66

12/17 20:28, , 1F
其他的語法 也可以盡量找到相似的功能
12/17 20:28, 1F

12/17 20:54, , 2F
proc reg data=??
12/17 20:54, 2F

12/17 20:57, , 3F
自己手動跑100次?? 裡面有自己跑100次?
12/17 20:57, 3F

12/17 20:59, , 4F
outest裡面有p-value?? 另外跑100次每次都是產出b不就蓋掉?
12/17 20:59, 4F

12/17 21:08, , 5F
oh..看懂了~~
12/17 21:08, 5F

12/17 21:22, , 6F
好像很少人知道tableout的功能??
12/17 21:22, 6F

12/17 21:49, , 7F
SAS各種統計指令的產出太多種了 trace on當場茶就行了
12/17 21:49, 7F

12/17 21:57, , 8F
prog logistic好像就不能用tableout
12/17 21:57, 8F

12/18 07:38, , 9F
其實分組跑資料不用急著想用巨集 我會先想有沒有辦法利用by
12/18 07:38, 9F

12/18 07:39, , 10F
來跑 這樣工作就一次完成 也不用產生過多的中間檔案
12/18 07:39, 10F

12/18 07:40, , 11F
確實只有reg才有tableout的功能 xdd
12/18 07:40, 11F

12/18 16:09, , 12F
我前幾天才寫完一個 不過我是要跑幾十個變數 變數是橫放
12/18 16:09, 12F

12/18 16:12, , 13F
而且同時跑Logistic npar1way means兼輸出分佈圖 懶得想
12/18 16:12, 13F
文章代碼(AID): #1D2rSuUk (Statistics)
討論串 (同標題文章)
文章代碼(AID): #1D2rSuUk (Statistics)