xpt2sas(.xpt文件批量转为.sas7dbat)

2023-11-11 20:20

本文主要是介绍xpt2sas(.xpt文件批量转为.sas7dbat),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

.xpt文件批量转为.sas7dbat

  • 前言
  • 一、文档目录举例
  • 二、方法一(SAS EG 8.3环境下)
  • 三、方法二(SAS9.4环境下)


前言

提供了两种不同编码环境下xport转sas的宏脚本xpt2sas,新建一个名为raw的文件夹,再内嵌一个名为xpt的文件夹,将需要转换的

xpt文件放置在xpt目录下,运行代码后,生成的.sas7dbat文件将批量出现在raw目录下


一、文档目录举例

示例:在如下文档目录前提下编码
在这里插入图片描述
在这里插入图片描述

二、方法一(SAS EG 8.3环境下)

只需要替换url中的file其他代码不用动

%macro xpt2sas;
%let url=%str(\\file\raw); \*file需要更换为指定目录如:\\10.10.1.95\filesever\project\task*\
libname raw "&url.";data _import;
length file line $200;
/* Define a filename pointing to the directory */
rc = filename("myDir", "&url.\xpt");
/* Open the directory, get directory id number */
dirId = dopen("myDir");
if dirId > 0 then do;/* dnum() : nb of files in directory */do i = 1 to dnum(dirId);/* Read the ith file name from directory */file = dread(dirId, i);line =cats("%","xpt2loc","(libref=raw,filespec='","&url.","\xpt\",file,"');");if length(file) > 0 then output;end;/* Close the open directory */rc = dclose(dirId);end;
drop rc dirId i file;
run;
data _null_;set _import end=eof;file "&url.\xpt\xpt2loc.sas" dlm="" lrecl=32000;put line;
run;
%include "&url.\xpt\xpt2loc.sas";
%mend;
%xpt2sas;

三、方法二(SAS9.4环境下)


%macro xpt2sas;
data _null_;call system("cd \file\raw\xpt"); \*file需要更换为指定目录如:D:\filesever\project\task*\
run;
filename _dir pipe 'ls -la *.xpt' ; /*linux:ls,window:dir*/data _import(keep=line);length _dirline $200;length _file $20;length line $200.;infile _dir recfm=v lrecl=200 truncover ;input _dirline $1-200 ;   _file = scan(_dirline, 9, " ");line = '%xpt2loc(libref=raw ,filespec='||"'"||'\file\raw/xpt\'||strip(_file)||"'"||');';output;
run;filename outfile "\file\raw\xpt2lo.sas";data _null_;set _import end=eof;file outfile dlm="" lrecl=32000;put line;
run;
x "perl -i -pe 's/\n/\r\n/g' \file\raw\xpt2loc.sas";filename outfile clear;%mend;
%xpt2sas;libname raw '/file/raw/';
%include '/file/raw/xpt2loc.sas';

这篇关于xpt2sas(.xpt文件批量转为.sas7dbat)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/392602

相关文章

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Python实现文件批量重命名器

《Python实现文件批量重命名器》在日常工作和学习中,我们经常需要对大量文件进行重命名操作,本文将介绍一个使用Python开发的文件批量重命名工具,提供了多种重命名模式,有需要的小伙伴可以了解下... 目录前言功能特点模块化设计1.目录路径获取模块2.文件列表获取模块3.重命名模式选择模块4.序列号参数配

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不

单精度浮点数按存储格式转为整数的程序

///#include<cstdio>//-----------------union int_char{unsigned char ch[4];float i;};void out_put(union int_char x)//x86是小端对其模式,即最数据的最低位存储在地址的最低位上。{printf("单精度浮点数值为:%f\n",x.i,x.i);printf("存储位置从左到右

myeclipse中的转为Web项目

一直以来都用的是myeclipse,昨天心血来潮,将myeclipse中生成的web项目导入eclipse,发现原来web左上角的小球不见了,变成了J标志,即,javaweb项目标示,变成了Java项目标示,网上找资料发现需要以下操作。 1,首先看是否有红色叹号,如果有红色叹号说明引入jar包路径错误,不匹配。先把所有的jar包匹配正确。 2,到.peject文件修改<natures>.

el-date-picker年份选择默认值为当前年,并且将获取时间转为年月日格式

<el-date-pickervalue-format="yyyy"v-model="leftQuery.year":disabled="timeArr && timeArr.length != 0 ? true : false"type="year"placeholder="选择年"@change=changeYear:picker-options="pickerOptions"></el-da

python中使用FormatDataLibsvm转为txt文件后报错illegal multibyte sequence

‘gbk’ codec can’t decode byte 0xff in position 0: illegal multibyte sequence 这个报错是因为编码不对,正确的编码是ANSI编码,txt文件打开后另存为可以看到当前的文本文档编码 但是excel不能直接保存ANSI编码的txt文件 所以不能直接保存为ANSI编码 有两种解决办法 1.新建一个txt文件(新建的txt文件