楼主: moshushi8928
2586 3

用sas宏编写简单计算程序 [推广有奖]

  • 4关注
  • 1粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
124 点
帖子
13
精华
0
在线时间
39 小时
注册时间
2011-12-7
最后登录
2021-12-15

楼主
moshushi8928 发表于 2013-6-8 03:59:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问一个非常弱的问题,希望大家指教,现有变量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)
二维码

扫码加我 拉你入群

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

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

关键词:SAS宏 计算程序 generated Data step estimate generated option ERROR null 程序

沙发
spapple 发表于 2013-6-8 05:54:16

藤椅
yongyitian 发表于 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);

板凳
playmore 发表于 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;
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 07:30