作者tew (咖啡王子)
看板Statistics
標題Re: [程式] SAS巨集程式碼寫法問題
時間Thu Nov 3 16:30:57 2016
※ 引述《blizzard258 (鯛魚燒)》之銘言:
: [軟體程式類別]:
: SAS
: [程式問題]:
: 資料處理
: [軟體熟悉度]:
: 新手
: [問題敘述]:
: 目前我有兩筆資料分別為(甲)和(乙),
: 我想抓每人起始年(startyear)到結束年(endyear)的對應地區暴露值(expose),
: 例如:A是對應area北區,2002年~2005年的暴露值平均為(25+32+43+52)/4=38,
: B是對應area北區,2003年~2006年的暴露值平均為(32+43+52+57)/4=46,
: C是對應area南區,2007年~2008年的暴露值平均為(90+20)/2=55。
: 最終資料的格式理想上應該會像(丙)一樣。
: 由於目前才學到基礎的巨集,
: 在嘗試過很多次之後都失敗,
: 因此希望各位前輩能過幫忙解惑XD
不需要用到macro 這個使用sql就可以
以下 a=甲檔案 b=乙檔案 c就是你的丙檔案
proc sql;
create table c as select distinct
a.*,mean(b.expose) as average_expose
from a,b
where a.area=b.area and a.id=b.id
and a.startyear<= b.year<=a.endyear
group by a.area,a.id,a.startyear,a.endyear
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.72.30.154
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1478161860.A.2D5.html
1F:推 blizzard258: 你好!真的很感謝你的回覆! 11/05 01:28
2F:→ blizzard258: 我在試過之後,發現真的能用此方法。 11/05 01:28
3F:→ blizzard258: 結果非常的理想! 11/05 01:28
4F:→ blizzard258: 沒想到sql這麼的好用! 11/05 01:28
5F:→ blizzard258: 你真的很厲害! 11/05 01:28
6F:→ blizzard258: 非常感謝你! 11/05 01:28