由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - sas macro 问题
相关主题
请教一个SAS Macro的问题SAS macro question
【包子】求问个简单sas macro问题Weird SAS macro bugs, 包子重谢!
sas questionsas 代码问题
请问SAS advanced macro global 和local一个常见的问题
求助,SAS ADV 130 中94请教一道SAS MACRO编程的问题。怎么都不明白。谢谢
how to use first.var in sas macro?Joint test for difference in a groups of variables between
请教一个SAS 数据分配问题[R]how to sample all possible continuous subset from ordered data
SAS help : how to macro odsHow to use sas macro to do stimulation
相关话题的讨论汇总
话题: beta话题: sample话题: macro话题: tempsample话题: run
进入Statistics版参与讨论
1 (共1页)
b*****r
发帖数: 359
1
%let sample_size = 600;
%let sample_num = 5000;
*sample construction;
%macro samples;
%do j = 1 %to &sample_num;
%let i = 1; * counter;
%do %while (&i <= &sample_size);
data _null_; set sys_risk (obs =1);
call symputx("beta", beta);
run;
beta_new = &beta ; format beta_new best24.;
* if beta > 1 , then add the observations in sample_j;
%if beta_new > 1 %then
%do;
data tempSample;
set tempSample;
if time >= -10;
run;
proc append base = sample&j data = tempSample;
run;

%let i = %eval(&i+1);
%end;
%end;
%end;
%mend samples;
%samples;
run;
上面这段代码,我要用 beta>1 数据建立样本。用 call symputx 得到的 beta 是符号格
式,我要转为数值型数据(它本身也是数值型数据),以便在 %if beta_new > 1 %
then 里面可以用。
可是,运行的时候出错,大家帮我看看,应该怎么改。
谢谢
b*****r
发帖数: 359
2
我得到的错误:
ERROR: A character operand was found in the %EVAL function or %IF condition
where a numeric operand is required. The condition was: beta_new > 1
ERROR: The macro SAMPLES will stop executing.
问题: 在macro里面怎样把由
data _null_; set sys_risk (obs =1);
call symputx("beta", beta);
run;
得到的符号型变量(beta)转换成数值型数据?
PS:在表格sys_risk里面,beta本来就是数值型数据,精确到小数点后6位。
l****u
发帖数: 529
3
try this to see if it works.
%if %eval(&beta)>1 %then %do;
.............
b*****r
发帖数: 359
4
这个不行,
因为,beta是符号型变量,
不能放在 %eval(&beta)里。

【在 l****u 的大作中提到】
: try this to see if it works.
: %if %eval(&beta)>1 %then %do;
: .............

k*******a
发帖数: 772
5
data _null_; set sys_risk (obs =1);
call symputx("beta", beta);
run;
beta_new = &beta ; format beta_new best24.;
run后面的data step的语句必须得出现在data step里面,不能单独出现
%if beta_new > 1 里面的 beta_new 应该要是一个macro variable, 否者系统认为
是 beta_new这个字符和 1 比较。 需要把beta_new的存到一个macro里面再用
l****u
发帖数: 529
6
Did you run it on your computer?
this code works well on mine.
%let beta=4;
%macro p;
%if %eval(&beta)>1 %then %do;
%put β
%end;
%mend;
%p
in log:
4
you have already defined beta as macro variable in data null step.
%eval(&beta) transfer it to a numeric value.

【在 b*****r 的大作中提到】
: 这个不行,
: 因为,beta是符号型变量,
: 不能放在 %eval(&beta)里。

1 (共1页)
进入Statistics版参与讨论
相关主题
How to use sas macro to do stimulation求助,SAS ADV 130 中94
Gibbs sampling algorithm used in 贝叶斯 linear regression analysis?how to use first.var in sas macro?
About SAS sample code请教一个SAS 数据分配问题
请问一个sas macro的问题 谢谢大家SAS help : how to macro ods
请教一个SAS Macro的问题SAS macro question
【包子】求问个简单sas macro问题Weird SAS macro bugs, 包子重谢!
sas questionsas 代码问题
请问SAS advanced macro global 和local一个常见的问题
相关话题的讨论汇总
话题: beta话题: sample话题: macro话题: tempsample话题: run