全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2532 3
2013-06-08
问一个非常弱的问题,希望大家指教,现有变量x,想求y=3.60827*x*x-7.10106*x+4.4
写了以下的宏,程序报错
ERROR: The macro TIMEESTIMATE generated CARDS (data lines) for the DATA step, which could cause
incorrect results.

%macro TimeEstimate(size);
option mprint mlogic;
data _null_;
input x;
y=
3.60827*x*x-7.10106*x+4.4;
datalines;
&size
;
proc print data=_null_;
var y;
quit;
%mend;
%TimeEstimate(
6.42)
二维码

扫码加我 拉你入群

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

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

全部回复
2013-6-8 05:54:16
二维码

扫码加我 拉你入群

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

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

2013-6-8 07:57:35
宏定义不能包含CARDS 语句, Datalines 语句,PARMCARDS语句,或数据线。但可以用 INFILE 语句代替。

如果只有一个变量x, 而且只有一个值,试试下面的代码:

%macro TimeEstimate(x=);
  data _null_;
    y=3.60827*&x*&x-7.10106*&x+4.4;
  run;
proc print;
run;
%mend;
%TimeEstimate(x=6.42);
二维码

扫码加我 拉你入群

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

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

2013-6-8 09:08:00
参数Size可以直接利用宏变量替换到data步里,如下所示

%macro TimeEstimate(Size);

data temp;
y=3.60827*&Size**2-7.10106*&Size+4.4;
run;

proc print data=temp;
run;

%mend;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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