首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Proc sgplot覆盖group by趋势上的平均趋势

使用Proc sgplot覆盖group by趋势上的平均趋势
EN

Stack Overflow用户
提问于 2021-10-25 15:43:41
回答 2查看 132关注 0票数 0

我想创建一个线形图,其中包括发病率的总体趋势和男性和女性的具体趋势。我使用以下代码来创建按趋势分组。如何将平均趋势添加到此折线图中。谢谢你的帮助。

代码语言:javascript
复制
proc sgplot data=have ;
vline year/response=disease_rate group=sex stat=mean datalabel=disease_rate  ;
yaxis values=(0,1)  label="Percentage";
run; 
EN

回答 2

Stack Overflow用户

发布于 2021-10-25 15:57:26

使用series而不是vline,以便您可以将回归叠加在其上,以获得平均趋势线。例如:

代码语言:javascript
复制
proc sql;
    create table have as
        select date
             , region
             , sum(sale) as sale
        from sashelp.pricedata
        group by region, date
        order by region, date
    ;
quit;

proc sgplot data=have;
    series x=date y=sale / group=region;
    reg    x=date y=sale / group=region;
    xaxis fitpolicy=rotatethin;
run;

票数 0
EN

Stack Overflow用户

发布于 2021-10-25 16:42:00

下面是一个总结它并将其显示在图表上的示例。虽然有不止一种方法可以做到这一点,但这只是其中的一种。

代码语言:javascript
复制
data have;
set sashelp.heart(in=a);
year=round(2021-ageAtStart, 10);
disease_rate= status="Dead";
run;

proc means data=have mean noprint;
class sex year;
types sex sex*year;
var disease_rate;
output out=summary_stats mean=average_value;
run;

proc sort data=summary_stats;
by sex year;
run;


data graph_data;
merge summary_stats(where=(_type_=2) rename=average_value=mean_sex_year)
      summary_stats(where=(_type_=3) rename=average_value = mean_sex);
by sex;
format mean_sex: percent12.1;
run;



proc sgplot data=graph_data ;
*where year > 1990;
vline year/response=mean_sex_year group=sex stat=mean datalabel=mean_sex_year  ;
vline year/response=mean_sex group=sex stat=mean datalabel=mean_sex  ;

run; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69711044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档