SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 630|回复: 1
打印 上一主题 下一主题

我的程序那里出错了,为什么的VAR1值总是MISSING

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-7-4 23:12:19 | 只看该作者

我的程序那里出错了,为什么的VAR1值总是MISSING

%macro comb(n=,m=);
ods output plan=comb&n._&m.;
ods listing close;
proc plan;
factors block=%eval(%sysfunc(comb(&n.,&m.))) ordered
         treat= &m. of &n. comb
;
run;
quit;
ods listing;
ods output close;
%mend;
%comb(n=10, m=1)
%comb(n=10, m=2)
%comb(n=10, m=3)
%comb(n=10, m=4)
%comb(n=10, m=5)
%comb(n=10, m=6)
%comb(n=10, m=7)
%comb(n=10, m=8)
%comb(n=10, m=9)
%comb(n=10, m=10)


%MACRO varlist(m);
%DO I = 1 %TO &m;
var&I $10
%END;
%MEND varlist;

%MACRO varassign(m);
%do i=1 %to &m;
%if treat&i=1 %then var&i=year_2;
%else %if treat&i=2 %then var&i=year_3;
%else %if treat&i=3 %then var&i=hydro;
%else %if treat&i=4 %then var&i=nuke;
%else %if treat&i=5 %then var&i=wind;
%else %if treat&i=6 %then var&i=biomass;
%else %if treat&i=7 %then var&i=estcp_pc;
%else %if treat&i=8 %then var&i=gdp;
%else %if treat&i=9 %then var&i=solar;
%else %if treat&i=10 %then var&i=ngeid;
%end;
%mend varassign;

data var3;
set comb10_3;
length %varlist(3);
%varassign(3);
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-7-5 00:53:22 | 只看该作者

Re: 我的程序那里出错了,为什么的VAR1值总是MISSING

%MACRO varassign(m);
%do i=1 %to &m;
if treat&i=1 then var&i="year_2";
else if treat&i=2 then var&i="year_3";
else if treat&i=3 then var&i='hydro';
else if treat&i=4 then var&i='nuke';
else if treat&i=5 then var&i='wind';
else if treat&i=6 then var&i='biomass';
else if treat&i=7 then var&i='estcp_pc';
else if treat&i=8 then var&i='gdp';
else if treat&i=9 then var&i='solar';
else if treat&i=10 then var&i='ngeid';
%end;
%mend varassign;
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 05:20 , Processed in 0.168527 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表