全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9597 11
2012-03-03
现在数据格式有两列,第一列是时间,第二列是沪深300指数的时间序列走势,我现在想在这个数据集上面加两列,分别是前六十天沪深300的均值和方差,那么前59填这两列因为missing value,请教一下这个在sas里面应该怎么写代码?
谢谢各位了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-3-3 16:52:54

%let lag_n=60;
data final_data2(drop=index);
   array pp[0:%eval(&lag_n-1)] _temporary_;   /* 创建数组,下标0-59 */
   index = 0; /* 为下标变量赋初值 */
      set raw_data;   
      pp[index] = p; /* 为数组元素赋p值 */
      index = mod(index+1, &lag_n);   /* 下标变量+1,取模保证值域为0-59 */
     /* 计算部分 */
      if _n_>=&lag_n then do;
         mean_p = mean(of pp[*]);
         var_p = var(of pp[*]);
      end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-3 16:53:19
看看上面的对不???
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-3 16:54:49
%let lag_n=60;
data final_data2(drop=index);
   array pp[0:%eval(&lag_n-1)] _temporary_;   /* 创建数组,下标0-59 */
retain  index  0; /* 为下标变量赋初值 */
      set raw_data;   
      pp[index] = p; /* 为数组元素赋p值 */
      index = mod(index+1, &lag_n);   /* 下标变量+1,取模保证值域为0-59 */
     /* 计算部分 */
      if _n_>=&lag_n then do;
         mean_p = mean(of pp[*]);
         var_p = var(of pp[*]);
      end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-3 16:56:22
看看最后这个版本行不???
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-3 16:59:07
/*假设原数据集有变量date和p两字段*/
proc sort data= raw_data;
by date;
run;

%let lag_n=60;
data final_data2(drop=index);
   array pp[0:%eval(&lag_n-1)] _temporary_;   /* 创建数组,下标0-59 */
retain  index  0; /* 为下标变量赋初值 */
      set raw_data;   
      pp[index] = p; /* 为数组元素赋p值 */
      index = mod(index+1, &lag_n);   /* 下标变量+1,取模保证值域为0-59 */
     /* 计算部分 */
      if _n_>=&lag_n then do;
         mean_p = mean(of pp[*]);
         var_p = var(of pp[*]);
      end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群