PROC报告中的计算变量

时间:2013-09-12 16:34:46

标签: sas

我正在尝试使用别名为PROC REPORT中的同一变量创建多个统计信息。

data have1;
   input username $  betdate : datetime. stake winnings;
   dateOnly = datepart(betdate) ;
   format betdate DATETIME.;
   format dateOnly ddmmyy8.;
   datalines; 
    player1 12NOV2008:12:04:01 90 -90 
    player1 04NOV2008:09:03:44 100 40 
    player2 07NOV2008:14:03:33 120 -120 
    player1 05NOV2008:09:00:00 50 15 
    player1 05NOV2008:09:05:00 30 5 
    player1 05NOV2008:09:00:05 20 10 
    player2 09NOV2008:10:05:10 10 -10 
    player2 15NOV2008:15:05:33 35 -35 
    player1 15NOV2008:15:05:33 35 15 
    player1 15NOV2008:15:05:33 35 15 
run;
PROC PRINT; RUN;

Proc rank data=have1 ties=mean out=ranksout groups=2;
     var    stake;
     ranks  stakeRank;
run;

我想在上面的报告中添加一个额外的计算变量。我在这做错了什么?我确定这只是一个小的语法问题,但我没有运气!

PROC REPORT DATA=ranksout1 NOWINDOWS;
    COLUMN stakerank stake, (n mean stake=discountedstake);
    DEFINE stakerank / GROUP id 'Rank for Variable Stake' ORDER=INTERNAL;
    DEFINE stake / ANALYSIS '';
    define n/format=8. ;
    define discountedstake / analysis format=8.2;
    compute discountedstake;
        discountedstake = stake * 0.9;
    endcompute;
RUN;

感谢。

1 个答案:

答案 0 :(得分:1)

我不确定你要做什么,但我正在使用:

  • 一个带有两个统计数据的变量:

    • stake标记为计数正在使用N统计
    • stakemean标记为平均值是均值统计。
  • 并创建一个计算列 - discountedstake(我正在乘以均值统计量。如果需要乘以原始值,可以通过在数据集之上创建一个datastep视图来完成。)< / p>

示例:

PROC REPORT DATA=ranksout NOWINDOWS;
    COLUMN stakerank stake stake = stakemean discountedstake;
    DEFINE stakerank / GROUP id 'Rank for Variable Stake' ORDER=INTERNAL;
    DEFINE stake / ANALYSIS N 'Count';
     DEFINE stakemean / ANALYSIS MEAN 'Mean';
    DEFINE discountedstake / computed format=8.2;
    COMPUTE discountedstake;
        discountedstake = stakemean * 0.9;
    ENDCOMP;
RUN;

您的代码中的一个问题是stake=discountedstake - 创建别名discountedstake并计算discountedstake。

相关问题