SAS中复合收益的计算

SAS中复合收益的计算,sas,Sas,我有一个datemonthly、person和returnmonthly的数据集。我需要为每个人计算数据集从4月t年到3月t+1年的复合月收益率。 比如说, 年度申报表人员A=第1年4月*第1年5月*第2年3月 我能知道在SAS如何做到这一点吗?我需要数组吗?您的意思是数据集看起来像 日期、人、报税表 2009年4月1日,A,1.1 等 等 ? /* Then you can do */ data ur_input_data_view / view = ur_input_data_view;

我有一个datemonthly、person和returnmonthly的数据集。我需要为每个人计算数据集从4月t年到3月t+1年的复合月收益率。 比如说,

年度申报表人员A=第1年4月*第1年5月*第2年3月


我能知道在SAS如何做到这一点吗?我需要数组吗?

您的意思是数据集看起来像

日期、人、报税表

2009年4月1日,A,1.1

?

/* Then you can do */

data ur_input_data_view / view = ur_input_data_view;

  /* assuming your dataset is stored in ur_input_data */

  set ur_input_data;

  /* obtain the year and month from the date variable */

  year = year(date);

  mth = year(date);

run;

/* you can skip the sort if your data is already sorted by person then date */

proc sort data = ur_input_data;

  by person date;

run; 

data output_data;

  set ur_input_data_view ;

  by person date;

  /* reset annual return to null if looking at a new person or month is april */

  if first.person or mth = 4 then do;

    annual_return = return;

  end;

  retain annual_return;

  annual_return = annual_return * return;

  /* this will output nothing for the persons that don't have a record at march */

  if mth = 3 then output;

run;