如何从一批SCL、SOURCE文件中查找或替换某字符串?
刚做数据分析师时,不知你是否有这样的麻烦,你在好几个CATALOG下建了上百个SCL或SOURCE文件,突然有一天因为系统变化,必须改动程序,比如有某个特征被大量程序引用了,那你必须一个一个地打开SCL文件,然后查找,然后再替换。想必你在那时肯定痛恨SAS公司的破编辑器了,功能弱智的像微软的记事本一样,如果你不幸不知道技巧,那只能老老实实一个一个的打开、查找、替换、编译、保存、另存,然后再打开另一个文件,如此周而复始。不过,幸运的是你看到了这篇文章,不用再这么辛苦。
不知道你有没有用过大名鼎鼎的编辑器ULTRAEDIT呢?相信很多写CODE的人都在用它吧!确实是很强的一款编辑器,今天我就用这编辑器中的一个小小功能为例,那就是查找-替换功能。我们可是能会在N多文件里做查找替换,我试了,打开上百个文件速度还是不错的,且操作非常方便。
好了,知道有这个功能就行了,下面的问题是怎么才能把SAS CATALOG里的程序文件导出来呢?
首先,我们知道,SAS提供了很多快捷的命令直接操作,比如:
在命令窗口敲入一个【open 表名】,就可以打开一个表,而不用鼠标去找这个表名,然后双击。
要实现把CATALOG下的程序文件导入导出,我们必须知道这些命令:
build scl文件 /*打开一个SCL文件*/
clear /*清除当前窗口内容*/
file “文件名” /*存盘当前窗口内容到文件*/
include “文件名” /*把指定文件的内容导入当前窗口*/
compile /*编译当前程序*/
save/*存盘当前窗口内容*/
saveclass/*存盘为类*/
end/*关闭当前窗口*/
cancel/*取消当前窗口所作的改动*/
我们还必须知道这样一个SAS系统视图,里面存放的是SAS的一些文件信息,比如CATALOG下有哪些什么文件啊,是什么样的类型啊。例如:
系统视图sashelp.vcatalg
主要字段:
libname 库名,就是CATALOG的名字
memname 目录名
objtype 成员类型,比如SCL
objname 对象名,就是CATALOG下的文件拉
好了,知道这些就可以把你想要的文件导出来了,下面就是源代码了:
/*导出*/
%let dir=g:\src\;/*要导出到哪个目录*/
data _null_;
set sashelp.vcatalg;
where libname =“要导出那个库”andmemname in (要导出哪些目录) and objtype=“要导出什么类型的文件,比如SCL”;
length filename filename1 200str2000;
filename=compress(”&dir”||memname || “\” || objname || “.scl”);
filename1=compress(libname||”.”|| memname || “.” ||objname || “.scl”);
str= “dm ”“” || “build ”|| trim(filename1) || “;file”|| “'” || trim(filename) ||“'”|| ”;end;”|| “”“;”;
put str;
run;
OK,现在运行上面的程序,会输出如下结果
dm “build ***.scl;file'g:\src\***.scl';end;”;
dm “build ***.scl;file'g:\src\***.scl';end;”;
然后把输出结果拷贝出来,粘贴到命令窗口,运行,然后你就会看到窗口闪啊闪啊,如果文件很多的化会闪一会儿的,耐心一点。
运行完了吧,然后去你导出的那个目录看吧,是不是生成了很多SCL文件。
咔咔,第一步大功告成。
第二步当然是对导出的文件进行操作了,你想干什么就干什么吧,如此强大的ultraedit,批查询、替换简直就是A piece of cake。
好了,假定你所有的改动都改好了,接下来的任务是把改动的结果写入SAS的CATALOG,很简单,就是把上面的输出结果改吧改吧,然后再在SAS命令窗口运行就会把所有改动自动写入SAS的CATALOG了,如下:
/*导入*/
dm “build ***.scl;clear;include '***.scl';save;compile;saveclass;end;”
看看,连complie,saveclass都给您做了。
接下来我们介绍即将举行的SAS精品课程:
2017年11月经管之家(原人大经济论坛)现开办SAS数据统计分析师培训班,让学员真正体验数据分析与SAS魅力。
培训时间:2017年11月4-5日,11-12日【四天周末】,11月9-12日【四天连续班】
培训地点:北京市海淀区厂洼街3号丹龙大厦B座3018
授课安排:上午9:00至12:00; 下午1:30至4:30; 答疑4:30至5:00
培训费用:现场:3600元/人;全日制学生2800元/人(差旅及住宿费用自理)
在线直播:1900元/人
证书费用:400元,可以自愿申请数据分析师证书
SAS讲师介绍
丁亚军
数据分析总监现任职于南京上度市场咨询有限公司,人大经济论坛数据处理中心数据分析顾问,SAS、SPSS软件讲师、中国学习路径图国际中心技术顾问。曾参与2012国家宏观经济预测、中国城镇居民家庭投资调查、泸州老窖目标管理与绩效考核、中国卫生状况调查、江苏广电CRM数据挖掘等大型数据处理项目。据
翟祥
CDA数据分析师讲师/北京林业大学管理学院统计系教授/人民大学统计学博士,具有深厚的数理统计与应用数据分析专业背景,SAS公司骨灰级讲师,具有八年数据分析、数据挖掘的从业经验,独立或带团队完成零售、电信、金融等多个大型数据挖掘项目。
立或带团队完成零售、电信、金融等多个大型数据挖掘项目。
马伯
经管之家CDA数据分析研究院SAS讲师,从事互联网、电子商务方向数据分析与数据挖掘的研究与CDA数据分析师的教学工作,研究方向为文本挖掘、电商推荐系统开发、潜在价值客户挖掘,互联网大数据挖掘等。
SAS培训目标
通过培训,系统提高数据分析相关专业教师的SAS软件操作水平和教学水平,强化使用SAS进行相关科研工作的能力,并普及相应的软件知识与统计学知识。具体来说是:
A、使得学员真正了解SAS强大的数据分析功能,并熟悉SAS提供的各种复杂数据分析模型的用途和适用条件。
B、掌握常用高级分析方法的原理、在SAS中的操作和结果阅读。
C、能将相应的模型结合实际问题加以具体运用,并懂得如何在SAS中实现。
SAS培训对象
1、各高校在校教师,或者在读本科/进修/研究生,希望从头学习SAS操作,或者进一步强化软件应用能力者均可报名。
在校同学:至少具有基本的统计理论知识。短期、快速掌握SAS软件这一最流行的统计软件之一,增加就业技能,在你的简历中写上浓重的一笔。
高校老师:以从事经管、金融、统计类相关教学为宜,学会使用SAS对统计数据进行处理,一些疑难方法、实证分析中遇到的问题都可以现场询问专家,获得解答。在权威期刊发表高质量的文章会更加得心应手!
2、在市场营销、金融、财务、人力资源管理领域中需要应用数据分析的人士。
3、希望提升统计分析实战能力的数据分析人员。
SAS课程特色
1、《数据统计分析师SAS认证》课程注重培养学员的实证分析能力,通过诸多案例讲解不同的应用背景。
2、我们一方面尽可能呈现SAS全貌,使学员对软件有总体的认识。另一方面则强调实际问题的解决能力。以软件应用为主线,辅以大量实例,有助于学员快速掌握SAS的数据预处理、结果输出等方面的基本技巧。
3、课程面向基础学员,强调案例情境的分析应用及其解决实际问题的能力,同时兼顾对试题规律的解析。
SAS优惠
1、赠送SAS数据统计分析师视频课程。
2、现场班老学员可以享受9折优惠。
3、同一机构3人以上报名,9折优惠。
4、同一机构6人以上报名,8折优惠。
5、赠送经管之家(原人大经济论坛)论坛币1000。
(后三项优惠不叠加)
SAS报名流程
1. 点击“立即报名”提交报名信息
2. 给予反馈,确认报名信息
3. 交费
开户行:北京农商银行四季青支行万寿寺分理处
户名:北京国富如荷网络科技有限公司
卡号:0404 1001 0300 0003 092
支付宝:guofuruhe@126.com
户名:北京国富如荷网络科技有限公司
邮递发票
4.开课前一周发送课程电子版讲义,软件准备及交通住宿指南。
联系方式
龚加勇
电话:010-53605625
手机:17773656856
Q Q:1281241407
课程大纲见回复