楼主: akalius
1910 7

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

  • 10关注
  • 3粉丝

已卖:155份资源

讲师

50%

还不是VIP/贵宾

-

威望
0
论坛币
3999 个
通用积分
2.8543
学术水平
4 点
热心指数
6 点
信用等级
6 点
经验
7835 点
帖子
262
精华
0
在线时间
613 小时
注册时间
2009-7-22
最后登录
2025-3-18

楼主
akalius 学生认证  发表于 2014-8-3 19:04:48 |AI写论文
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
拉您进交流群
GMT+8, 2026-1-1 23:29