我正在尝试编写一个宏代码,以生成特定年份的平均销售额。说今天,我要报告year = 2008,明天要报告year = 2009。 数据具有Order_date变量,其格式为mmddyy10。
我正在尝试通过以下代码实现这一目标:
%macro yearly(yr=%sysfunc(year("&sysdate"d ));
proc means data=salesxls;
class &yr;
where year(order_date) == &yr;
title "yearly avg sales for &yr";
run;
%mend yearly;
这不起作用。原因可能是我用来提取年份的%sysfunc。任何帮助,将不胜感激。 PS这里是Macro新手
编辑: 一年有效的代码如下:
data new;
set work.salesxls;
yr=year(Order_date); /** I extracted the year from Order_date)**/
run;
proc means data=new mean;
class yr;
var total_retail_price;
where yr=2008;
run;
在上面的代码中,我首先创建了一个提取年份的数据集。然后,我将该数据用于proc均值过程。
答案 0 :(得分:0)
您可以在此处简化此操作:
用&year替换代码中的2008。
%macro yearAvg(year=);
proc means data=salesxls mean;
where year(order_date)=&year.;
class order_date;
format order_date year4.;
var total_retail_price;
run;
%mend;
%yearAvg(year=2008);