Re: [問題] SAS資料處理問題
data test;
input a b;
cards;
2 3
5 2
3 9
8 2
;
data a;
set test;
retain c 0;
if _n_>=2 then c=a+b+c;
run;
這樣就好了
XD
※ 引述《YcSJM (挖喜SJM)》之銘言:
: ※ 引述《YcSJM (挖喜SJM)》之銘言:
: : 想請教一個SAS資料處理的問題
: : 如果現在資料是這樣
: : a b c
: : ----------
: : 2 3 0
: : 5 2 .
: : 3 9 .
: : 8 2 .
: : c 從第二個開始想要是 a的第2個 + b的第2個 + c的第1個
: : c 的第三個類推下去是 a的第3個 + b的第3個 + c的第2個
: : 這樣程式改怎麼寫
: : 推 kenshin528:我覺得用IML或EXCEL做比較簡單 04/01 15:45
: : 推 wlsherica:excel+1 04/01 17:12
: : 推 tew:retain c 0; if _n_>=2 then c=a+b+c; 結束 04/01 17:31
: : 推 tew:如果資料筆數是100000筆 SAS還是比較簡單一點 XD 04/01 18:32
: : 推 wlsherica:請問_n_是甚麼呢??????? 04/01 21:50
: 感謝版主及版友的回答
: 因為資料有上千筆 而同樣的動作要重複好幾百次
: 上面的問題只是將問題簡單化而已
: 所以不考慮用excel做
: 試了版主的方法試了好幾次都沒辦法成功
: 後來改用iml處理
: 將處理的方法提供給以後有需要的版友參考看看
: 只是iml不是很熟
: 也許會有些多餘或者沒效率
: data test;
: input a b;
: cards;
: 2 3
: 5 2
: 3 9
: 8 2
: ;
: proc iml ;
: use test;
: read all var {a} into a; read all var {b} into b;
: n=nrow(a);
: c=j(n,1,0);
: do j=2 to n;
: c[j,1]=a[j,1]+b[j,1]+c[j-1,1];
: end;
: create test1 var{a b c};
: append;
: quit;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.32.225
推
04/05 20:34, , 1F
04/05 20:34, 1F
→
04/05 20:35, , 2F
04/05 20:35, 2F
→
04/05 23:59, , 3F
04/05 23:59, 3F
→
04/06 00:00, , 4F
04/06 00:00, 4F
→
04/06 00:00, , 5F
04/06 00:00, 5F
→
04/06 00:16, , 6F
04/06 00:16, 6F
→
04/06 10:42, , 7F
04/06 10:42, 7F
討論串 (同標題文章)