经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
SAS专版
竭诚求高手解一下这道SAS Macro题,不甚感激!
楼主
yellowriver
5080
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专版
经管高考
学术道德监督
休闲灌水
人力资源管理
微观经济学
热门文章
【重磅权威】2000-2024年上市公司人力资本流 ...
中国力量席卷全球- 绿色赋能地产先行 掀起全 ...
求助英文文献一篇
中国风能太阳能资源年景公报(2025年)
几何(第五卷)[法] M. 贝尔热
《寻路集:在全球网络中寻找合适节点 》周其 ...
几何(第四卷)[法] M. 贝尔热
我该如何记住你?智能体记忆系统的演化之路
CDA数据分析脱产就业班于2026年3月7日开班! ...
表格结构数据的核心特征及具象实例解析
推荐文章
2026JG学术冬训营:从Stata初高到Python机器 ...
【必看】【本版版规,欢迎发悬赏贴求助】
26年寒假天津站|Gemini论文写作&数据分析 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群