楼主: lihuixin
1765 3

[有偿编程] 用宏获得每次执行的pvalue [推广有奖]

  • 0关注
  • 0粉丝

大专生

61%

还不是VIP/贵宾

-

威望
0
论坛币
625 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
671 点
帖子
69
精华
0
在线时间
35 小时
注册时间
2008-12-9
最后登录
2013-3-6

10论坛币
下边是我写的宏的一部分,就是有好多个变量依次执行PROC GLIMMIX,然后获得每次执行的pvalue,存在一个文件中。我可以用call symput 取出pvalue但是怎么把每次运行的pvalue放在一起?

%MACRO Bivariate(rhsvarlist =);
  %LET k=1;
  %LET rhs = %SCAN(&rhsvarlist, &k);
%DO %WHILE ("&rhs" NE "");
  
PROC GLIMMIX DATA = WORK.Fulldata2;
CLASS Traits;
MODEL rate = Traits &rhs /solution;
ODS OUTPUT ParameterEstimates=parms;
RUN;QUIT;

DATA WORK.parms;
  SET WORK.parms;
  IF Number = 8 THEN CALL SYMPUT("pvalue",ProbChi);
RUN;
......

%LET k = %EVAL(&k + 1);
%LET rhs = %SCAN(&rhsvarlist, &k);
   %END;
%MEND;

关键词:pvalue value alue PVA Estimates amp solution
沙发
oxygen1988 发表于 2012-12-24 08:57:42 |只看作者 |坛友微信交流群
不懂,但帮你顶一下

使用道具

藤椅
playmore 发表于 2012-12-24 09:31:19 |只看作者 |坛友微信交流群
DATA WORK.parms;
  SET WORK.parms;
  IF Number = 8 THEN CALL SYMPUT("pvalue",ProbChi);
RUN;

上面这一段,改成

%if k EQ 1 %then %do;
data parms_final;
set parms;
run;
%end;
%else %do;
data parms_final;
set parsm_final parms;
run;
%end;

最后生成的parms_final含有所有循环得到的参数
你可以最后来一次Number=8作筛选就好了
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

板凳
zkymath 在职认证  发表于 2012-12-25 00:32:18 |只看作者 |坛友微信交流群
ods ,别加 New 选项

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 03:16