经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
SAS专版
竭诚求高手解一下这道SAS Macro题,不甚感激!
楼主
yellowriver
4974
7
收藏
2010-11-02
悬赏
100
个论坛币
已解决
能否大致解析一下以下的macro代码?代码每隔一小段稍微给一下点评可以吗?感谢大家!
%macro Glue(InputFile=,InputSheet=);
PROC IMPORT OUT= WORK.Master
DATAFILE= "&inputfile."
DBMS=EXCEL REPLACE;
SHEET="&inputsheet";
GETNAMES=YES;
RUN;
Proc Sort data=master;
by order;
run;
Data _null_;
set master;
by order;
call symput('Program'||'_'||strip(put(_N_,8.)),Program);
call symput('Type_of_prog'||'_'||strip(put(_N_,8.)),Type);
call symput('Inputlist'||'_'||strip(put(_N_,8.)),InputList);
call symput ('Location'|| '_'||strip(put(_N_, 8.)),Location);
call symput ('number_of_progs',_N_);
run;
%local a;
%do a= 1 %to &number_of_progs. ;
%include "&&Location_&a." ;
%if %upcase(&&Type_of_prog_&a.) eq MACRO %then %do;
%let program=&&Program_&a.;
%let inputlist=(&&Inputlist_&a);
%str(%&program. &inputlist.);
%end;
%end ;
%mend;
给以上程序用的Sample excel sheet:
Order
Type
Program
InputList
Location
4
Sas
Initial
C:\Initial.sas
5
Macro
Conversion
agg_file=&agg_file, inputds=otela_data
C:\conversion.sas
6
Sas
Comprehension
C:\comprehension.sas
7
Macro
suppressioncounts
Level=district,
LevelVar=g_district_irn
C:\suppressioncounts.sas
最佳答案
hopewell
查看完整内容
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
hopewell
2010-11-2 00:40:53
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
藤椅
情迷仲夏夜
2010-11-2 04:14:52
悬赏金还真不少!我现在可正是愁着帐号里一分全无呢!看上去这个macro程序并不是很难的!不知道如果我解释给你后,你会怎样将那100个论坛币投进我的帐号里?(我注册一个多星期来,回了十几个帖子,得到了59个积分,不知道为什么我现在的帐号里,论坛币还是为零?不是说:10个积分可得一个论坛币,可怎么还看不到我账号有论坛币?不知道版主可不可以关注一下?我的经验积分值要累计到多少才能显示出我有多少论坛币?)
这段Macro我觉得应该还算很容易理解的呀!就是从微软的Excel中从第1行一直读取数据到'number_of_progs',Sample excel sheet中有5个纵列(Order ,Type ,Program, InputList, Location),分别读到SAS中的四个变量(Type_of_prog,Program, InputList, Location)然后写到一个叫Master的SAS文件中,在macro程序中用四句call symput只读取(Type ,Program, InputList, Location,第五句call symput是从SAS的_N_中读取SAS运行时的循环数作为样本的总例数,在这个例子中,一共有5行,因为在proc import中有getnames=yes,SAS会自动将excel表格里的标题读进SAS的文件中),再重新按Order排序!在call 这个%Glue macro时,要给出两个东西:第一,就是要给出Sample excel sheet的地址和文件名,第二,就是要给出Sample excel sheet表格内sheet的名称,一般第一张表就叫Sheet1):
%Glue(C:\data\Excel_sheet.xls,Sheet1);
不知道楼主还有什么不明白,需要更详细解释的呢?
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
板凳
soporaeternus
2010-11-2 09:17:52
楼上你的答案是最佳的话,钱就直接打你帐户里了,方便快捷,没有延迟,不收手续费
经验貌似是要换成金币的,而且会有一定的条件
楼上还要补充解释下%local a下面的语句,下面还是有点功能的......
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
报纸
hopewell
2010-11-2 10:15:56
改写了一下
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
地板
yellowriver
2010-11-2 13:34:29
你好!感谢你的回复,因为你楼下答得确实很好,按照版规,我得投给“最佳答案”,谢谢你!
3#
情迷仲夏夜
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
点击查看更多内容…
7楼
yellowriver
2010-11-2 13:43:40
hopewell, 谢谢你!我发现我们原来‘认识’呀,哈哈,很开心,给你发站内信了。
5#
hopewell
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
8楼
tmdxyz
2010-11-3 08:10:14
楼主,你帖子的标题“不甚感激”,是不是错了?应该是“不胜感激”。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
请高手看看我这段MACRO程序是怎么错的?
macro里面怎么用obs语句;
如何自动编译子文件下的SAS Macro
如何用macro给变量赋值?
如何将中位数放入macro中
如何通过macro得到数据集
SAS ADV Macro, 全局变量,局部变量
请教:SAS中,定义宏时%Macro 宏名称(宏参数),请问定义宏参数有什么用?
如何在macro中的%if中调用宏函数
请问:不用macro & sql ,如何根据另外的变量将某个变量分成几个变量?谢谢.
栏目导航
SAS专版
休闲灌水
哲学与心理学版
真实世界经济学(含财经时事)
经管文库(原现金交易版)
经管高考
热门文章
CDA 数据分析师:线性回归实战指南 —— 从 ...
世界上最简单的会计书(高清pdf版)
20XX年扶贫办雨露计划工作方案
AI应用新范式:从工具革命到“超级OS”的演 ...
同心动力携手山西金控,共筑金融企业“以人 ...
R语言实战 机器学习与数据分
蔡定创教授、李云庆院长致联合国秘书长古特 ...
2022年北京冬奥会英语观后感【10篇】
R语言预测实战
瓦尔拉斯方程组及其求解历史
推荐文章
AI狂潮席卷学术圈,不会编程也能打造专属智 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
几种免费下载文献的方法----我的文献应助经
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群