SAS日志文件的Issue检迟伍查涉及多个日志文件的导入,导入的过程分为2个部分。 第一部分,获取特定路径下所有尺腊日志文件的名称(即文件地址);第二部分,获取文件地址后将文件导入SAS数据集 。
这两部分功能的实现,之前都有过介绍:
这篇文章将这两部分的内容整合到一起,演示路径如下:
程序思路是,使用 Dopen 函数打开特定路径,通过 Dnum 函数获取路径内的文件数目,基于此陵旦滑使用Do循环以及 Dread 函数进行读取文件名称,路径名称与文件名拼接可以获得文件路径。最后,对数据集进行筛选,只保留.LOG文件。
程序运行结果如下:
前面文章介绍了2种导入方法,推荐使用 infile 语句。我手动将保存导入内容的长度设置为1000,这个值已经是比较大了。但是对于一些Log Issue,会将所有变量取值输出到日志中,这时候很容易造成内容截断。
不过,从检查Issue的角度看,可以在导入时筛选特定记录进行输出,截断不影响检查的判断结果。当然,也可以设置SAS读入文档的记录的最大长度32767,这大概率会避免内容的截断。
结果如下:
批量读入外部文档,是单个文档读入的延伸。文档读入SAS数据集,方便后续的检查处理。
感谢阅读, 欢迎关注!
若有疑问,欢迎评论交流!
你可能混淆了数据文件和数据集。扩展名为sd2的文件应为SAS数据集,可以直接用来分析腊中用,infile语句用来读取外部数据文羡局羡件兄拍(为纯文本文件),进一步生成数据集。试试下面的程序libname test 'd:\sas'proc npar1way wilcoxon data=test.jykclass groupvar p10105run尤其在工作中需要处理大批量的数据或需要借助SAS进行多任务并行处理的时候,往往有对SAS程序设定自动运行的需求。
下面对其中的蠢枝斗一种方法进行举例介绍。
步骤1:
建程序存放目录D:\temp
测试程序如下:
proc export data =sashelp.class
outfile= "D:\temp\class.xls"
label dbms=excelcsreplace
sheet="class"
run
步骤2 :
建立批处理程序D:\temp\ test.bat
程序内容如下:
"C:\ProgramFiles\SASHome\SASFoundation\9.3\sas.exe" -sysin d:\temp\test.sas -logd:\temp\test.log
注:上述路径均需改为自己的本地路径。
步骤3 :
设定程序运行任带磨务和执行周期
控制面板à管理工具à任务计划程序à创建基本任务à完成设定
(注:运行程序搭坦运行的是bat,而不是sas。这个是在设定的时候需要注意的)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)