全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3585 17
2011-01-15
悬赏 20 个论坛币 已解决
比如我的数据有7个变量,我要产生一个宏变量,其内容为 "ccccccc"。也就是说,这个宏变量里的“c”的个数是由数据的变量数决定的。当然,这段程序要是动态的。碰到一个10个变量的数据,那么这个宏变量的内容就应该是"cccccccccc"。

例子:

data have;
input v1-v7;
cards;
1 1 1 1 1 1 1
;
run;

现在要定义一个宏变量, want,其内容为 "ccccccc"。

%put &want.;

输出的结果应该是
ccccccc
二维码

扫码加我 拉你入群

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

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

全部回复
2011-1-15 17:19:18
复制代码
二维码

扫码加我 拉你入群

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

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

2011-1-15 17:29:33
相关问题:如果这个数据有2个字符变量,5个数字变量,产生一下宏变量:“llccccc”。“l”的个数是由字符变量的个数决定的,而“c”的个数是由数字变量的个数来决定的。如何实现?
二维码

扫码加我 拉你入群

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

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

2011-1-15 18:49:56
data have;
input v1-v9;
cards;
1 1 1 1 1 1 1 1 1
;
run;
proc contents data=have out=out noprint;run;
data _null_;
set out end=eof;
if eof then call symput ('num',varnum);
run;
%put #
data c;
c='c';
do i=1 to #
output;
end;
run;
proc sql noprint;select c into:c separated by '' from c;quit;
%put &c;

仅供参考
二维码

扫码加我 拉你入群

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

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

2011-1-15 18:58:10
data have;
input v1 $ v2 $ v3 $ v4-v6 v7 $ v8-v10;
cards;
a b c 1 1 1 d 1 1 1
;
run;
proc contents data=have out=out noprint;run;
data var1 var2;
set out;
if type=1 then output var1;
else output var2;
run;
data var1;
set var1 end=eof;
n=_n_;
if eof then call symput ('numn',n);
run;
data var2;
set var2 end=eof;
n=_n_;
if eof then call symput ('numc',n);
run;
%put numn=&numn numc=&numc;
data c;
var='c';
do i=1 to &numn;
output;
end;
run;
data l;
var='l';
do i=1 to &numc;
output;
end;
run;
data t;
set l c;
run;
proc sql noprint;select var into:t separated by '' from t;quit;
%put &t;

仅供参考
二维码

扫码加我 拉你入群

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

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

2011-1-15 19:49:17
hopewell 发表于 2011-1-15 19:15
复制代码
你这段似乎有问题,出来的是'lcccccl', 不是'llccccc'。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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