我正在尝试计算宏标题中数字变量的平均值。代码如下:
title "Using sysfunc to evaluate mean %sysfunc((mean(Total_retail_price)) )"
出现错误提示:
错误:%SYSFUNC或%QSYSFUNC宏函数参考中缺少函数名称。
感谢您的帮助!
编辑:
%macro type(year=,type=);
proc print data=salesxls ;
title " using sysfunc to evaluate mean %sysfunc((mean(Total_retail_price)) )";
where year(order_date)=&year. and Order_type=&type;
format order_date year4.;
run;
%mend type;
p.s新手在这里
答案 0 :(得分:3)
SAS在那种情况下无法识别变量df.loc[:,~df.T.duplicated(keep='first')]
Column A Column B Column D Column E
0 1.0 7 13 13
1 2.0 8 14 13
2 3.0 9 15 13
3 4.0 10 16 13
4 NaN 11 17 13
5 6.0 12 1 13
,因此大多数统计函数都无法以这种方式调用。
您需要将平均值分配给宏变量。这是一个例子。
Total_Retail_Price
现在,您可以在标题中添加新的宏变量proc sql noprint;
select mean(Total_Retail_Price) into: mean_value
from salesxls
where year(order_date)=&year. and Order_type=&type;
quit;
。
mean_value
现在完整的宏如下所示:
title "The mean of Total Retail Price is: &mean_value.";
答案 1 :(得分:1)
对于多个组,单个宏变量将无用。
可以使用特殊标记在BY
语句中显示TITLE
变量名或值-#BYVAL<n>
,#BYVAR<n>
,#BYVAL(<var>)
和{{1 }}。
创建一个#BYVAR(<var>)
,其中包含一列价格均值,以使其成为一个按变量。在view
语句中使用该列,在by
中使用特殊令牌。
title
列出
proc sql;
create view work.cars_v as select
cars.*
, mean(msrp) as mean_price format=dollar7. /* automatic remerge */
from sashelp.cars
group by Make,Type
;
options nocenter nobyline;
proc print data=work.cars_v;
title "#byval(make) #byval(Type), Average MSRP:#byval(mean_price)";
by Make Type mean_price;
var Model Origin DriveTrain EngineSize Cylinders MSRP;
run;