全部版块 我的主页
论坛 测试 十三区 SAS上传下载区
477 2
2024-05-26
各位好。“高级医学统计学_万崇华2014”一书中,在关于平衡不完全区组设计的SAS程序里,有一小段宏命令,我仿照着输入,却无法得到结果。在此请教大家,麻烦帮我看一看,不胜感激!
%let block = 5;
%let treat = 5;
%let subject = 3;
%macro aa( treat);;
data a; %do i = 1 %to & treat;
treatment = compress('疗法 '||& i);;
output; %end;
run;
%mend aa;
%aa( &treat);;
proc optex data = a seed = 10000 coding = orth;
class treatment; model treatment; blocks structure = ( &block)&subject;
output out = b;
run;
data c;
set b; number = _n_;
run;
ods html style analysis;
proc tabulate format = 2.0;
class block treatment; var number;
table block = ", number = '受试对象编号 '*treatment = "* sum = " /box = [label = '区组'];
run;
ods html close;

附件列表
IMG_20240525_150207.jpg

原图尺寸 2.15 MB

IMG_20240525_150207.jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2024-6-29 22:15:57
一个月过去了,应该是自己找到原因了,但还是自作多情说一下。
1跟2是一样的问题,宏变量是&+变量名,中间没空格的;
3跟书对比少了个等号;
4是两个单引号,不是一个双引号。
附件列表
捕获.PNG

原图尺寸 48.64 KB

捕获.PNG

二维码

扫码加我 拉你入群

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

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

2024-7-1 05:46:51
你提供的SAS宏代码中存在一些问题,我将一一指出并给出修改建议:

1. **压缩字符串时不需要使用分号**:在`compress('疗法 '||&i);`这行,实际上SAS中的`compress()`函数用于移除字符串两端的空白或指定字符,并不接受分号。因此应该去掉分号。

2. **宏调用参数问题**:`%aa( &treat);;` 这里使用了额外的分号并且直接将变量名放在括号内,应当修改为 `%aa(&treat);`。

3. **PROC OPTEX 数据集来源问题**:你定义的数据集`a`在宏中创建,但宏调用后并没有自动将数据集`a`留在当前工作库中供后续步骤使用。你需要确保在调用宏之前或之后可以访问这个数据集。

修正后的代码如下:

```sas
%let block = 5;
%let treat = 5;
%let subject = 3;

%macro aa( treat);
data a;
    %do i = 1 %to &treat;
        treatment = compress('疗法 '||&i); /* 去掉了不必要的分号 */
        output;
    %end;
run;
%mend aa;

%aa(&treat) /* 修改宏调用格式 */;

proc optex data=a seed=10000 coding=orth;
class treatment;
model treatment;
blocks structure = (&block)*&subject;
output out=b;
run;

data c;
    set b; number = _n_;
run;

ods html style=analysis;
proc tabulate format=2.0;
...
run;
```

在使用SAS宏时,一定要注意参数的正确传递以及变量和数据集的作用范围。希望上述修改能帮助你解决问题!如果还有其他疑问或者代码运行中遇到新的问题,请随时提问。

另外,`PROC TABULATE`部分需要具体指定要报告哪些统计数据以及如何分组、排序等详细信息才能正常工作,这部分根据你的实际需求进行调整即可。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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