Statistics 板


LINE

※ 引述《Maninck (我是大天才^o^/)》之铭言: : 标题: [程式] SAS MACTRO 变数的问题 : 时间: Sat Jul 30 14:57:55 2011 : : [软体程式类别]: : 入软体程式类别 SAS : : [程式问题]: : 资料处理 : : [软体熟悉度]: : 新手(不到1个月) : : [问题叙述]: : 我写了两只程式分别为aa.sas及bb.sas,我想让bb直接呼叫aa的结果存起来。 : 但目前遇到的一个大问题是,他的变数好像都是共用的 : bb里面的变数k,如果宣告成i,他就会跟aa里的i混乱掉, : 不知道能不能让他们同样都是i,但却不会乱掉。 : 也就是说我想做到像java那样可以模组间的变数不会互相干扰。 : : [程式范例]: : : %MACRO aa (num); : DATA abc; : %DO i=1 %TO # : %DO j =1 %TO # : col = &i; : row = &j; : muti = &i*&j; : output; : %END; : %END; : RUN; : %MEND; : : %INCLUDE 'E:\TEST\source\aa.sas'; : %MACRO bb (num); : %DO k=1 %TO # : %aa(&k); : DATA tmp&k; : SET abc; : RUN; : %END; : %MEND; : : : : ----------------------------------------------------------------------------- : : -- :



※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 118.168.95.195 : → ASD332:宣告值域? java是用public or private,SAS> %Global,%Local 07/30 16:08 : → Maninck:耶耶~~写出来了~~感谢^^ 就如你所说的前面加一个宣就好了 07/30 16:32 : → Maninck:另外再请教一个问题,这可以有回传值吗?例:回传一个DATA 07/30 17:37 : → Maninck:在macro bb里面的SET abc 那边我想要做的是接aa组好的DATA 07/30 17:39 : → Maninck:如果不知道aa里面的DATA叫abc,那我bb要怎麽写? 07/30 17:40 : → ASD332:不太懂你说的不知道DATA的名字?就算写方法(or function) 07/31 00:51 : → ASD332:不也需要呼叫你自己定义的名称吗? 07/31 00:51 : ※ 编辑: Maninck 来自: 118.168.90.166 (07/31 09:55) : → Maninck:我指的是绿色那个档名,因为我现在知道aa里面的Data叫abc 07/31 09:56 : → Maninck:所以我在bb里面就set abc给他,但在不知道aa里面的名称时 07/31 09:57 : → Maninck:我可以用类似DATA tmp&k = &aa(&k);的方式来做吗? 07/31 09:58 : 像我把bb改成下面,他就会出错 : %MACRO bb (num); : %Local i; /*内部使用宣告*/ : %DO i=1 %TO # : DATA tmp&i; : SET %aa(&i ); : %END; : %MEND; : : 错误讯息 : ERROR: File WORK.DATA.DATA does not exist. : ERROR: File WORK.ABC.DATA does not exist. : ※ 编辑: Maninck 来自: 118.168.90.166 (07/31 10:04) : 推 tew:出错是必然的 你在set甚麽样的东西呢? 把%aa带进去 07/31 20:25 : → Maninck:我希望是set macro aa跑出来的data abc,所以才在想macro 07/31 20:39 : → Maninck:aa要怎麽样才可以回传data abc出来? 07/31 20:40 : → Maninck:还是说~~macro无法像java一样可以return一个物件或字串QQ 07/31 20:42 : → Maninck:我在网路上有查到如何回传字串,但就是查不到回传一个data 07/31 20:43 两个方法 1.如果是一个data作出来之後,紧接着就想呼叫这一个data的话,可以使用&syslast这一 个global等级的automatic macro variable,这个variable会带出程式执行到此最後一 个使用过的data的名称包含他的libname 2.如果不是要马上呼叫的话,aa里面那一个作出来的data的名称either是你本来就给定的 or是根据一个逻辑命名的,所以建议在aa这一支macro里面,先把他的名称储存到一个 global level的macro variable里面,这样就可以在bb里面去呼叫。储存用的方法可能 是用%let或是用call symput,depends on 你的data name是不是跟input record有关 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.243.21.155 ※ 编辑: west1996 来自: 111.243.21.155 (07/31 22:33)
1F:→ Maninck:感谢<(_ _)> 我来试试看^O^/ 08/01 07:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP