本文主要是介绍SAS XPT 互转 Xlsx,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一步 xpt转换位xlsx
首先准备xpt文件,放在一个目录下。
将以下内容保存进 exprotXlsx.sas 文件中
/* 将xpt文件导入sas软件中 */
LIBNAME XP XPORT "F:\sasTest\ADPR.xpt";
PROC COPY IN=XP OUT=WORK;
RUN;/* 将导入的work导出为xlsx文件 */
filename output 'F:\sasTest\ADPR_YS.xlsx' encoding="utf-8";PROC EXPORT DATA=WORK.Adpr OUTFILE=outputDBMS=XLSX REPLACE;PUTNAMES=YES;RUN;/* 将导入的work导出为xlsx文件(翻译文件) */
filename output 'F:\sasTest\ADPR.xlsx' encoding="utf-8";PROC EXPORT DATA=WORK.Adpr OUTFILE=outputDBMS=XLSX REPLACE label;PUTNAMES=YES;RUN;
![H4%A7NYF9$3D$92QQ)8RY9.png
注意点
- 为什么要导出两份不同xlsx文件呢?因为sas软件属性中有name和label,如果我们导出有label的xlsx,翻译完成后,xlsx再转换回Xpt时,sas脚本需要原始xpt文件进行比较,这时两者的name比对不上,就导致无法转换,即便我们导入到sas软件中,它依然是有问题。
![HDOSMCKZ0K3A}}@L%9LGEJ.png
label就是我们要进行翻译的标题,所以xlsx转换回xpt,需要使用sas脚本中修改label命令。
![0$RL]UWRCLW{C_E({1SD)W.png
第二步 xlsx转换xpt
/* 将xpt文件导入sas软件中 */
LIBNAME XP XPORT "F:\sasTest\ADPR.xpt";
PROC COPY IN=XP OUT=WORK;
RUN;/* 将翻译好的xlsx导入sas软件 */
PROC IMPORT OUT= WORK.ADPR_PR DATAFILE= "F:\sasTest\ADPR_YS.xlsx" DBMS=EXCEL REPLACE;RANGE="ADPR_YS"; GETNAMES=YES;MIXED=YES;SCANTEXT=YES;USEDATE=NO;SCANTIME=NO;
RUN;LIBNAME sasfile "F:\sasTest";
LIBNAME xportout xport "F:\sasTest\ts.xpt";/* 转换work中label */
DATA xportout.ts;length STUDYID $11.;format STUDYID $11.;informat STUDYID $11.;set work.ADPR_PR;label STUDYID="研究标识符"USUBJID="受试者唯一标识符"SUBJID="筛选号";
RUN;/* 将work转换为xpt文件 */
PROC COPY in=sasfile out=xportout memtype=data;
RUN;
运行后结果
这篇关于SAS XPT 互转 Xlsx的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!