在单个平面文件中存储SAS数据(包括表结构)
我需要将SAS数据表转换为平面文件(或者称为“ASCII文件”,而不是二进制文件)。每个原始SAS表只有一个平面文件。 具有挑战性的是,我希望平面文件也包含原始SAS表的一些结构信息,特别是:在单个平面文件中存储SAS数据(包括表结构),sas,flat-file,table-structure,Sas,Flat File,Table Structure,我需要将SAS数据表转换为平面文件(或者称为“ASCII文件”,而不是二进制文件)。每个原始SAS表只有一个平面文件。 具有挑战性的是,我希望平面文件也包含原始SAS表的一些结构信息,特别是: 变量/列名 变量/列标签 变量/列类型 变量/列长度 变量/列格式 变量/列信息 其他信息: 我只需要转换小数据(
- 变量/列名
- 变量/列标签
- 变量/列类型
- 变量/列长度
- 变量/列格式
- 变量/列信息
- 我只需要转换小数据(<100 OB)
- 性能不是问题(在合理范围内)
- 平面文件应构成重新创建原始SAS表的基础,我不需要在数据或过程步骤中将该文件直接用作表
我的最佳选择是什么?我不知道有什么简单的解决方案 可能:
关于如何查看文本文件中的元数据,您还没有完全明确,所以我只能这样说。proc-sql的descripe语法可能很方便获取元数据部分,包括长度、类型、格式、索引等 代码: 日志:
顺便说一句,你还没有说你为什么要这么做。在这种情况下,没有好的理由(可能有令人信服的理由,比如某个有权力的人) 说“要么做,要么被解雇”,但没有充分的理由)
我会放弃在每个文件中合并元数据和数据的想法,除非有非常充分的理由这样做。将数据集A的元数据导出到名为metadata_A的文件中;这将导致成对的文件。任何希望在数据库程序或统计程序中使用这些文件的人都会有一个标记明确的元数据文件。使用SAS 9.2,您可以从数据集创建XML文件,XML包含变量/列元数据,如格式、标签等。。。请参阅SAS 9.2 XML LIBNAME引擎:用户指南中标题为“使用XML引擎跨操作环境传输SAS数据集”的部分。链接如下: 下面是手册中的一段代码,说明如何使用XML92 libname引擎和PROC COPY创建XML:
libname myfiles 'SAS-library';
libname trans xml92 'XML-document' xmltype=export;
proc copy in=myfiles out=trans;
select class;
run;
在SAS 9.1.3中,可能需要创建自定义标记集才能执行相同的操作。SAS技术支持(support@sas.com)可能会提供一些帮助。请问您为什么需要这个?听起来,这个问题似乎是一个更大问题解决方案的一部分。有了更多的上下文,就有可能提出更好的整体解决方案。我有一些小规模的应用程序配置数据。我希望通过将这些数据签入我的修订控制系统,使它们跟随我的应用程序源代码下游。我已经构建了一个应用程序,可以将二进制格式元素(如各种目录条目)转换为平面文件格式,反之亦然。这个自制系统是围绕着二进制元素和平面文件元素的数量之间的一对一对应关系的概念构建的。请参阅我在问题下的评论。我实际上使用这个系统将我的表数据导出到MySQL中
NOTE: SQL table SASHELP.CLASS was created like:
create table SASHELP.CLASS( bufsize=4096 )
(
Name char(8),
Sex char(1),
Age num,
Height num,
Weight num
);
libname myfiles 'SAS-library';
libname trans xml92 'XML-document' xmltype=export;
proc copy in=myfiles out=trans;
select class;
run;