SAS Proc means,将平均值存储为变量
我需要找到两个平均值的比率,这是我使用SAS Proc means,将平均值存储为变量,sas,Sas,我需要找到两个平均值的比率,这是我使用proc means找到的 proc means data=a; class X Y; var x1 x2; run; 然后我得到变量x1和x2在X和Y两个类别中的输出平均值,但我感兴趣的是每个类别的x1/x2,手工操作并不是真正的解决方案 我不是一名专业程序员,所以我希望有一段简单的代码我能理解和使用。你需要预计算x1/x2或后计算x1/x2(取决于你是想要mean(x1/x2)还是mean(x1)/mean(x2),它们可以有不同的x1和x2答案,并有
proc means
找到的
proc means data=a;
class X Y;
var x1 x2;
run;
然后我得到变量x1
和x2
在X
和Y
两个类别中的输出平均值,但我感兴趣的是每个类别的x1/x2
,手工操作并不是真正的解决方案
我不是一名专业程序员,所以我希望有一段简单的代码我能理解和使用。你需要预计算x1/x2或后计算x1/x2(取决于你是想要
mean(x1/x2)
还是mean(x1)/mean(x2)
,它们可以有不同的x1和x2答案,并有不同的响应数)
proc sql noprint;
create table xy_ratio as /* New table name*/
select distinct X, Y, avg(x1)/avg(x2) as x1_x2_ratio /* selects distinct rows containing variables listed here. (Must include group by variables) mean of x1 / mean of x2 to form ratio*/
from a /*source dataset*/
group by X, Y /*Similar to class statement, will provide an average for each distinct combination of X and Y that appear in the dataset*/
;
quit;
因此,要么(…意味着填写您已经拥有的内容)
或
多亏了你们两位,乔的解决方案工作得非常完美。
data premean;
set have;
x1x2 = x1/x2;
run;
proc means ... ;
class ... ;
var x1x2;
run;
proc means ...;
class ... ;
var x1 x2;
output out=postmeans mean=;
run;
data want;
set postmeans;
x1x2=x1/x2;
run;