由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - macro statement 一问
相关主题
深夜抱怨一下sas 代码问题
求助关于sas macro 中的if- then语句Stupid SAS programming style is driving me crazy....
求助SAS问题,如何筛选排名三分之一的数据SAS MACRO和Procedure
SAS里if语句什么时候前面要加%,什么时候不加?急问:SAS batch submission with macro variable
如何在用SAS给多个data step 和proc step 做循环语句呢?一个有意思的问题,关于SAS的运算时间。
【分享】SAS2010全球论坛文章合集Re: SAS help : How to use Macro to select procedurs
[Help] SAS Proc mixedNeed advice on SAS macro debugging
why this error in %if statementR 语言有像SAS 一样的macro吗?
相关话题的讨论汇总
话题: macro话题: errvar话题: statement话题: intvar话题: intsd
进入Statistics版参与讨论
1 (共1页)
b**********i
发帖数: 1059
1
在写个macro,automate一个simualation program,有点地方不明。 请教在macro中有
必要把所有的if then, do while 等 都改成 %if %then, %do %while 等的 macro
statement吗? 我现在只是在最外面用macro statement语句,里面的data simulation
和analysis还是用sas statement,原样照搬,程序能run,有什么问题吗?
l***a
发帖数: 12410
2
没问题

simulation

【在 b**********i 的大作中提到】
: 在写个macro,automate一个simualation program,有点地方不明。 请教在macro中有
: 必要把所有的if then, do while 等 都改成 %if %then, %do %while 等的 macro
: statement吗? 我现在只是在最外面用macro statement语句,里面的data simulation
: 和analysis还是用sas statement,原样照搬,程序能run,有什么问题吗?

b**********i
发帖数: 1059
3
谢谢了。贴几行我的code,看看规范否?
%macro tryrun;
%let index = 1;
%do %while (&index LE &nrecords);

data parms1;
set specinput;
if _N_ EQ &index;
************************************************************************
******************;
* NOTHING BELOW NEEDS TO BE SPECIFIED;
****************************************************************************
**************;
n2=round(n1*k);
ns = n1 + n2;
* figure out the intercept and trend variance (assume error variance = 1);
* figure out the standard deviation at the end of the study;
errvar = 1;
errsd = sqrt(errvar);
intvar = (ICCbeg * errvar) / (1.0 - ICCbeg);
intsd = sqrt(intvar);
a = (nis - 1)**2;
b = 2 * (nis - 1) * recorr * intsd;
c = intvar - (ICCend * errvar) / (1.0 - ICCend);
timevar = ((0-b + sqrt(b**2 - 4*a*c)) / (2*a))**2;
timesd = sqrt(timevar);
inttimecov = recorr * intsd * timesd;
d**********r
发帖数: 24123
4
if then 要看你使用的目的了。加上 % 表示你控制macro产生出来的语句。
举个例子1:
N=10;
%if &a = 1 %then
M = 1;
%else
M = 2;
那么运行的时候,如果 a=1 那么SAS 会生成:
N=10;
M=1;
如果 A <> 1 那么 SAS 会生成:
N=10;
M=2;
b**********i
发帖数: 1059
5
谢谢,解释的很清楚。 只是生成的语句不一样,效果是一样的。我放心了。

【在 d**********r 的大作中提到】
: if then 要看你使用的目的了。加上 % 表示你控制macro产生出来的语句。
: 举个例子1:
: N=10;
: %if &a = 1 %then
: M = 1;
: %else
: M = 2;
: 那么运行的时候,如果 a=1 那么SAS 会生成:
: N=10;
: M=1;

1 (共1页)
进入Statistics版参与讨论
相关主题
R 语言有像SAS 一样的macro吗?如何在用SAS给多个data step 和proc step 做循环语句呢?
PROC REG中可以用IF语句么?【分享】SAS2010全球论坛文章合集
请教个macro的问题[Help] SAS Proc mixed
请教SAS中的IF-ELSE语句。why this error in %if statement
深夜抱怨一下sas 代码问题
求助关于sas macro 中的if- then语句Stupid SAS programming style is driving me crazy....
求助SAS问题,如何筛选排名三分之一的数据SAS MACRO和Procedure
SAS里if语句什么时候前面要加%,什么时候不加?急问:SAS batch submission with macro variable
相关话题的讨论汇总
话题: macro话题: errvar话题: statement话题: intvar话题: intsd