楼主: akalius
1689 7

请教个字符循环以及宏嵌套问题 [推广有奖]

  • 10关注
  • 3粉丝

讲师

48%

还不是VIP/贵宾

-

威望
0
论坛币
4168 个
通用积分
9.1543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7832 点
帖子
261
精华
0
在线时间
605 小时
注册时间
2009-7-22
最后登录
2024-4-9

10论坛币
也就是可以组合成12钟情况
。现在想在宏中循环调用他们。请教该怎么写。接受参数部分是proc factor data=a method= rotate=;var;run;
谢谢

最佳答案

learsaas 查看完整内容

r( ))" ne ""); %let j=1; %do %while("%scan(&rotate,&j,%str( ))" ne ""); proc factor data=a method=%scan(&method,&i,%str( )) rotate= %scan(&rotate,&j,%str( ) ) var;run; %let j=%eval(&j+1); %end; %let i=%eval(&i+1); %end; %mend a; %a;
关键词:factor Method Facto fact Data factor method
沙发
learsaas 发表于 2014-8-3 19:04:49 |只看作者 |坛友微信交流群
r( ))" ne "");
%let j=1;
%do %while("%scan(&rotate,&j,%str( ))" ne "");
proc factor data=a method=%scan(&method,&i,%str( )) rotate=
%scan(&rotate,&j,%str( ) ) var;run;
%let j=%eval(&j+1);
%end;
%let i=%eval(&i+1);
%end;
%mend a;
%a;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
akalius + 1 + 1 + 1 谢谢 可是我初学者 算法的话如果没有具.

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
akalius 学生认证  发表于 2014-8-3 19:11:26 |只看作者 |坛友微信交流群
接着上面的问题   如果还有一个数值型的pct   我想分别给它赋值  1 1.11 1.2 2.1 3.1 该怎么样进行循环与上述的两个循环在一起

使用道具

板凳
learsaas 发表于 2014-8-3 19:45:35 |只看作者 |坛友微信交流群
楼主就写成这样了,我手机写实在太累了,本来写好了,弄发弄发排版又乱了。所以就这样了,给点辛苦分哦。下次我真只写算法了。
已有 1 人评分论坛币 收起 理由
akalius + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

使用道具

报纸
akalius 学生认证  发表于 2014-8-3 20:06:11 |只看作者 |坛友微信交流群
learsaas 发表于 2014-8-3 19:45
楼主就写成这样了,我手机写实在太累了,本来写好了,弄发弄发排版又乱了。所以就这样了,给点辛苦分哦。下 ...
谢谢您了,但是您的代码我没看懂,有时间的话还请修改一下这个 ,我初学者,一些具体的用法不是很懂。

使用道具

地板
akalius 学生认证  发表于 2014-8-3 20:13:40 |只看作者 |坛友微信交流群
咔咔咔咔咔咔咔咔咔咔咔咔咔咔

使用道具

7
learsaas 发表于 2014-8-3 20:48:53 |只看作者 |坛友微信交流群
手写的,你自己调试了%macro a;
%local method rotate pct i j k;
%let method=prin ml print;
%let rotate=varimax orthomax promax equamax;
%let pct=1 1.11 1.2 2.1 3.1;
%let i=1;
%do %while("%scan(&method,&i,%str(空格))" ne "");
%let j=1;
%do %while("%scan(&rotate,&j,%str(空格))" ne "");
%let k=1;
do %while("%scan(&pct,&k,%str(空格))" ne "");
proc factor data=a method=%scan(&method,&i,%str(空格)) rotate=
%scan(&rotate,&j,%str(空格) ) pct=%scan(&pct,&k,%str(空格)); var;run;
let k=%eval(&k+1);
%end;
%let j=%eval(&j+1);
%end;
%let i=%eval(&i+1);
%end;
%mend a;
%a;

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
akalius + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

8
akalius 学生认证  发表于 2014-8-3 21:13:54 |只看作者 |坛友微信交流群
learsaas 发表于 2014-8-3 20:48
手写的,你自己调试了%macro a;
%local method rotate pct i j k;
%let method=prin ml print;
能否解释下这个是什么意思啊   %scan(&method,&i,%str(空格))" ne ""     

使用道具

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

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

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

GMT+8, 2024-4-19 17:46