Re: [程式] SAS marco如何表示?
※ 引述《sheiswe (no matter)》之銘言:
: 最近需要寫一個算式~
: 算出222B公司的權重
: 算式是:
: 222B公司/橫向加總橫向的其他公司(不含222B自己)
: 我知道算式不難~但實在想不出要如何用marco的方式表現,跪求解惑。
: 橫向縱向都是公司交易表格如下 (百萬):
: 公司 111A 222B 333C 444D
: 111A 12,000 空 100 100
: 222B 5,000 101 121 905
: 333C 空 12 15 80
: 555D 2,006 1,201 空 75
: 希望得到的結果是
: %marco xxx(公司);
: ..
: %mend;
: %xxx(222B);
: 就能得到222B這間公司的權重結果。
: 再次跪求,謝謝。
: 謝謝M大,我補上更詳細的說明。
data a ;
input code $ firm1 firm2 firm3 firm4 ;
datalines ;
111A 12000 . 100 100
222B 5000 101 121 905
333C . 12 15 80
555D 2006 1201 . 75
;
run;
proc transpose data=a out=a;
var firm1-firm4;
by code;
run;
data a;
set a;
if _name_='firm1' then _name_='111A';
if _name_='firm2' then _name_='222B';
if _name_='firm3' then _name_='333C';
if _name_='firm4' then _name_='555D';
run;
proc means noprint data=a;
var col1;
by code;
output out=b(drop=_type_ _freq_) sum=sum;
run;
data a;
set a;
if code=_name_;
run;
data a;
merge a b;by code;
ratio=col1/(sum-col1);
run;
你的公司命名太差 不可能用數字開頭
如果不是用數字開頭 命名那部分可以省略 你的code 會 完美的等於_name_
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.1.127.204
※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1431665640.A.918.html
→
05/15 12:58, , 1F
05/15 12:58, 1F
→
05/15 12:58, , 2F
05/15 12:58, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):