最近看了朋友写的一篇sas数据集转换成excel的文章,内容非常全面,不仅无私展示了自己的程序,还记录了编程过程中遇到的一些问题。然后我也顺便百度甚至google了关于此的更多内容,感觉大同小异。
sas数据集转换成exce的方法基本分为两种,第一种是使用sas程序,这也是绝大多数人使用的方法,程序包括:ods excel、ods tagsets.excelxp和proc export。第二种是使用vba程序,非常小众,通过ado链接sas数据库,还包含了sql程序。
在医药行业,如果我们输出需要递交FDA的excel,姑且称为正式的excel,那么一定要使用sas。这里的正式不仅指的是内容,还有严格的格式控制,比如title、footnote等等。比如TLF中的listing,很有可能就要制作成excel。
那么非正式的excel呢?换个角度来说,如果把sas数据集转换成excel,并且这些excel我们不用递交,仅仅用来查询、筛选数据,也不用在乎他的格式,那就可以称得上是非正式excel。
这个时候我觉得用vba可能会更便捷,因为完全不需要第三方软件,电脑自带excel即可。
在我写的程序中,
点击此按钮,输入路径,就可以看到此路径下的所有数据集名称。
点击此按钮,再输入一遍相同路径进行验证,如果路径相同则读取A列值,在此excel中把数据集名称为A列的值输出成各个sheet。
如果有对sas数据集输出成excel熟悉的朋友应该知道,这简单几步,省略了除sas程序以外的很多步骤,你可以自由控制是batch所有数据集,还是自己想要的数据集转换成excel。并且没有内存不够只能用wps打开的问题。
在编程过程中,我遇到并解决了以下问题:
format的问题,比如日期格式,解决。
多个数据集读入的问题,解决。
sql不支持问题,解决。
数据集为空程序错误的问题,解决。
链接数据库路径和数据集名称从常量转变为变量问题,解决。
。。。
希望有和我一样在通过自己查找资料的基础上,能产生自己的问题并有自己的心得体会能和我进行交流,共同进步的同僚,所以不直接提供代码,但欢迎私信问题。