- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 499 个
- 通用积分
- 1.9300
- 学术水平
- 3 点
- 热心指数
- 3 点
- 信用等级
- 3 点
- 经验
- 3090 点
- 帖子
- 84
- 精华
- 0
- 在线时间
- 83 小时
- 注册时间
- 2005-8-29
- 最后登录
- 2022-11-14
- 毕业学校
- 山西财经大学
已卖:23份资源
本科生
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 499 个
- 通用积分
- 1.9300
- 学术水平
- 3 点
- 热心指数
- 3 点
- 信用等级
- 3 点
- 经验
- 3090 点
- 帖子
- 84
- 精华
- 0
- 在线时间
- 83 小时
- 注册时间
- 2005-8-29
- 最后登录
- 2022-11-14
- 毕业学校
- 山西财经大学
 | 开心 2022-3-29 12:23:14 |
|---|
签到天数: 38 天 连续签到: 1 天 [LV.5]常住居民I
|
10论坛币
|
自己试着写一个宏来计算Pearson相关系数。在把变量累计值赋值给新的宏变量时出错,不能执行。感觉是调用自动变量_n_或者观测数n时出了问题。请帮忙查看下该如何调整?谢谢!
- %macro Pearson(DSin,XVarlist,DSout);
- %let countX=%eval(%sysfunc(count(&XVarlist,%str( )))+1);
- %do i=1 %to &countX;
- %let x&i=%scan(&XVarlist,&i,%str( ));
- %end;
- data temp;
- /*计算累加值*/
- set &DSin nobs=n;
- %DO i=1 %to &countX;
- %let xs&i=%sysfunc(cats(&&x&i,_s));
- retain &&xs&i 0;
- &&xs&i+&&x&i;
- %if _n_=n %then %do;
- call symput("xss_"||left(i),left(&&xs&i));
- %end;
- %end;
- run;
- data temp_2;
- /*计算均值*/
- set temp nobs=n;
- %DO i=1 %to &countX;
- %let xm&i=%sysfunc(cats(&&x&i,_m));
- &&xm&i=&&xss_&i/n;
- %end;
- run;
- %mend;
复制代码
|
|