楼主: machineo21
2619 3

(solved)请教SAS IML调用DATA step数据的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1258份资源

大专生

46%

还不是VIP/贵宾

-

威望
0
论坛币
10947 个
通用积分
0.1200
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2625 点
帖子
53
精华
0
在线时间
9 小时
注册时间
2007-3-17
最后登录
2024-2-15

楼主
machineo21 发表于 2008-10-30 06:53:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

向各位SAS IML达人请教一个SAS IML调用DATA step数据的问题。程序见下方。print alpha beta可以正常输出,但是计算积分却报错,不知道是什么缘故?

注:我在写一个很复杂的宏,这是我简化的一个程序。我必须调用DATA eval里面的数
据,而不能直接在IML里面定义这些数据。

/* Define the Integrand in AUC Quaduature */
%MACRO TPR(FPR, alpha, beta);
 1-1/(1+exp((log(&FPR./(1-&FPR.))+&alpha.)*exp(&beta./2)));
%MEND TPR;
DATA eval;
 input alpha beta;
 cards;
 2.6728  -0.1220
;
RUN;
PROC IML;
 use eval;
 read all;
 print alpha beta;
 start fun(FPR);
 TPR=%TPR(FPR, alpha, beta);
 return(TPR);
 finish;
 /* Call QUAD */
 bound = { 0  1 };
 call quad(AUC, "fun", bound) eps=1E-10;
 print AUC;
QUIT;

[此贴子已经被作者于2008-11-1 19:23:30编辑过]

二维码

扫码加我 拉你入群

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

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

关键词:Data step solved Solve Data Step SAS Data Step iml solved

回帖推荐

machineo21 发表于3楼  查看完整内容

多谢贤兄仗义相助!有IML高手指点我另外一个办法,如果不用read all var{alpha, beta} into x,那么就在start fun(FPR) 后面加上global(alpha, beta) ,实为异曲同工:/* Define the Integrand in AUC Quaduature */%MACRO TPR(FPR, alpha, beta); 1-1/(1+exp((log(&FPR./(1-&FPR.))+&alpha.)*exp(&beta./2)));%MEND TPR;DATA eval; input alpha beta; cards; 2.6728  -0.1220;RUN;PROC IML;&nbs ...

爱萌 发表于2楼  查看完整内容

你的问题比较大,不过我按照你的已经修改了,  start fun(FPR); use eval; read all var{alpha beta} into x;TPR=1-1/(1+exp((log(FPR/(1-FPR))+x[1])*exp(x[2]/2))); return(TPR); finish;

本帖被以下文库推荐

沙发
爱萌 发表于 2008-10-31 16:50:00

你的问题比较大,不过我按照你的已经修改了,

  start fun(FPR);
 use eval;
 read all var{alpha beta} into x;
TPR=1-1/(1+exp((log(FPR/(1-FPR))+x[1])*exp(x[2]/2)));
 return(TPR);
 finish;

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

最恨对我说谎或欺骗我的人

藤椅
machineo21 发表于 2008-11-1 19:16:00

谢谢!另一种解决办法

多谢贤兄仗义相助!

有IML高手指点我另外一个办法,如果不用read all var{alpha, beta} into x,那么就在start fun(FPR) 后面加上global(alpha, beta) ,实为异曲同工:

/* Define the Integrand in AUC Quaduature */
%MACRO TPR(FPR, alpha, beta);
 1-1/(1+exp((log(&FPR./(1-&FPR.))+&alpha.)*exp(&beta./2)));
%MEND TPR;
DATA eval;
 input alpha beta;
 cards;
 2.6728  -0.1220
;
RUN;
PROC IML;
 use eval;
 read all;
 print alpha beta;
 start fun(FPR) global(alpha, beta);
 TPR=%TPR(FPR, alpha, beta);
 return(TPR);
 finish;
 /* Call QUAD */
 bound = { 0  1 };
 call quad(AUC, "fun", bound) eps=1E-10;
 print AUC;
QUIT;

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

板凳
爱萌 发表于 2008-11-3 16:10:00
这里的global确实很妙,妙,妙
最恨对我说谎或欺骗我的人

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 19:32