作者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/cn.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