楼主: 小鳄鱼a
2222 11

请大家帮我看看一段代码,哪个地方有语法问题 [推广有奖]

  • 6关注
  • 10粉丝

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

20论坛币
rt

1.jpg (322.2 KB)

1.jpg

关键词:语法问题

回帖推荐

freerunning_sky 发表于11楼  查看完整内容

和indexstring一样处理就好了 %let Nmark=%scan(%quote(&mark),&i,%quote(&delim));
沙发
freerunning_sky 在职认证  发表于 2014-9-7 21:55:26 |只看作者 |坛友微信交流群
  1. %macro genstat(index=,delim=);

  2. %let i=1;
  3. %do %while(%scan(%quote(&index),&i,%quote(&delim)) ne );
  4. %let Nindex=%scan(%quote(&index),&i,%quote(&delim));
  5. %if &i=1 %then %do;
  6. data  comstat; set &Nindex.343stat; run;
  7. %end;

  8. proc append base=comstat data=&Nindex.343stat force;run;



  9. %let i=%eval(&i+1);
  10. %end;

  11. %mend;

  12. %genstat(index=%str(age9 , netppediva , bm ,gsdiva, efdiva),delim=%str(,));
复制代码
已有 1 人评分论坛币 热心指数 收起 理由
小鳄鱼a + 5 + 3 精彩帖子

总评分: 论坛币 + 5  热心指数 + 3   查看全部评分

使用道具

藤椅
zwj110 在职认证  发表于 2014-9-7 22:01:12 |只看作者 |坛友微信交流群
不懂,不过顶一下

使用道具

板凳
hubifeng? 学生认证  发表于 2014-9-7 22:44:37 |只看作者 |坛友微信交流群
顶!虽然不懂,请问楼主代码是在什么编译器中编译?

使用道具

报纸
小鳄鱼a 发表于 2014-9-9 10:28:20 |只看作者 |坛友微信交流群
没有用编辑器啊

使用道具

地板
spssone 发表于 2014-9-9 11:23:55 |只看作者 |坛友微信交流群
data  comstat; set &index.343stat; run;
set语句后面一大串,还有逗号,是不符合要求的吧

使用道具

7
小鳄鱼a 发表于 2014-9-9 16:22:20 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-9-7 21:55
非常感谢
能否解释一下为什么非要加这一段
%let Nindex=%scan(%quote(&index),&i,%quote(&delim));

使用道具

8
freerunning_sky 在职认证  发表于 2014-9-9 16:34:25 |只看作者 |坛友微信交流群
小鳄鱼a 发表于 2014-9-9 16:22
非常感谢
能否解释一下为什么非要加这一段
%let Nindex=%scan(%quote(&index),&i,%quote(&delim));
额,这个就是从&index中一个一个单词读出来啊,你会写上面那段代码,难道不知道什么意思么。。。
已有 1 人评分论坛币 学术水平 收起 理由
小鳄鱼a + 5 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1   查看全部评分

使用道具

9
小鳄鱼a 发表于 2014-9-9 16:57:45 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-9-9 16:34
额,这个就是从&index中一个一个单词读出来啊,你会写上面那段代码,难道不知道什么意思么。。。
哦   ,  我知道   ,明白了  ,呵呵   ,谢谢

使用道具

10
小鳄鱼a 发表于 2014-9-11 10:03:20 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-9-9 16:34
额,这个就是从&index中一个一个单词读出来啊,你会写上面那段代码,难道不知道什么意思么。。。
高手,你好,非常感谢经常出手相助,再请教一个,我又增加了一个mark的字符串系列,跟index的是对应的,我现在想实现的功能是在调用index里的数据集的时候,想调用对应位置的mark.比如age9调用的是dgsvotflag,netppediva调用的是downflag,bm对应dbmflag等。

请问该怎样写主体外部的循环结构,非常感谢


  1. %macro picword(indexstring=,mark=,delim=%str(,));



  2. ods rtf;


  3. %let i=1;
  4. %do %while(%scan(%quote(&indexstring),&i,%quote(&delim)) ne );
  5. %let Nindexstring=%scan(%quote(&indexstring),&i,%quote(&delim));/*为什么必须加上这一句*/


  6. /*程序处理主体
  7. proc gplot data= &Nindexstring.num6;
  8. plot &Nindexstring.pct*date=&mark/hminor=0 legend=legend99 vaxis=0 to 0.5 by 0.1;
  9. symbol1 v=diamond i=join c=blue;
  10. symbol2 v=star i=join c=red;
  11. symbol3 v=square i=join c=yellow;
  12. run;
  13. */

  14. %let i=%eval(&i+1);
  15. %end;


  16. ods rtf close;




  17. %mend;
  18. %picword(index=%str(age9 , netppediva , bm ,gsdiva, efdiva),mark=%str(dgsvotflag,downflag, dbmflag ,dgsdivaflag, defdivaflag),delim=%str(,));
复制代码



使用道具

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

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

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

GMT+8, 2024-4-26 10:21