在SAS7/8中使用SAS9的数据文件

SAS7/8中使用SAS9的数据文件


简介

SAS®9 的用户能共享SAS文件给使用以前版本的用户,但是不同的环境共享的方法不一致,在某些情况下,文件可以直接使用,如果不行,则你需要改变文件的格式到以前的版本.

注意:不要使用PROC CPORT或者PROC CIMPORT来复原,否则你将在导入时碰到下面错误:

     ERROR: TRANSPORT FILE IS BAD

     ERROR: The value is not a valid SAS name

CPORT 传输文件是用来允许SAS用户以在不同平台共享SAS数据文件,它是被设计用力支持最新的SAS特征. 因此,其导出的文件不能用于以前的版本的 SAS.

I


SAS7/8下使用SAS9数据文件

如果兼容则不需要复原了,读下面章节以决定文件是否兼容

尝试SAS7/8的兼容性

如果你共享SAS数据文件在相同平台,在这个情况下,文件本称为本地文件,否则称为外部文件

SAS7/8本地文件

SAS9文件和SAS7/8文件有相同的文件格式和相同的扩展,本地SAS9文件是完全兼容SAS7/8的,只要你没有使用SAS9的新特性,你可以不需要做任何改变就可以在SAS7/8下直接使用

 

SAS7/8 中的外部文件

如果为外部文件,SAS则在CEDA(交叉环境数据访问)的机制下处理它

通过CEDA,你可以在SAS7/8中读SAS9的文件,你能传输你的数据文件作为二进制方式从一台主机传送到另一台主机,无需任何额外步骤就可以使用

复原到SAS7/8

你不能简单的使用V8引擎来使用复原的SAS9文件,也不能使用PROC CPORTPROC CIMPORT来导入导出SAS数据文件,下面表格列出了直接使用的限制

复原SAS9文件到SAS7/8的方法

方法

限制

NOCLONE选项的PROC COPY过程

必须运行在SAS7/8会话中

数据步

必须运行在SAS7/8会话中

XPORT 引擎

截断变量名到8个字符

OUTREP=

 

使用带NOCLONE选项的PROC COPY 过程

SAS78会话中,你可以使用带NOCLONE选项的COPY过程,用于赋值一个外部文件到一个本地文件,例如:

   libname intest '你的外部文件的路径';

   libname outtest '你的本地文件的路径';

   proc copy in=intest out=outtest noclone;

      /* 使用SELECT语法用于选择指定要复制的数据集*/

      select my-data-set;

   run;

使用DATA步来复原到SAS7/8

直接使用,例如

libname intest '你的外部文件的路径';

   libname outtest '你的本地文件的路径';

   data outtest.native-filename;

      set intest.foreign-filename;

   run;

使用XPORT来复原到SAS7/8

XPORT 引擎运行轻便的在不同平台和不同版本间进行访问的能力,你可以在SAS9里建立一个transport 文件然后在SAS 6/7/8 会话中恢复它

XPORT引擎支持某些5版本的命名规则,变量名要少于8个字符且标签要少于40个字符,如果你的数据步遵循这个规则,你必须指定系统选项VALIDVARNAME=V6, 这样会自动截断变量名和标签,例如

   options validvarname=v6

下面代码运行在SAS9会话中

   libname source 'pathname-of-v9-file';

 

   /* Give the transport file a name and extension */

   /* In this case, the transport file is c:/mySAS/filename.stx */

 

   libname xportout xport 'c:/mySAS/filename.stx';

   proc copy in=source out=xportout;

     /* Use the SELECT statement to specify a single data set */

     select my-data-set;

   run;

下面代码运行在SAS7/8会话中

   libname xportin xport 'c:/mySAS/filename.stx';

   libname target 'pathname-for-v8-file';

   proc copy in=xportin out=target;

   run;

使用OUTREP= 选项来复原到SAS7/8

如果你想避免上面XPORT提到的缺点,你可以建立一个SAS文件加上OUTREP选项,其可以附加在数据集和LIBNAME语句中,这样会产生相应平台对应的SAS文件数据格式

OUTREP选项的赋值列表如下

  • ALPHA_TRU64
  • ALPHA_VMS_32
  • ALPHA_VMS_64
  • HP_IA64
  • HP_UX_32
  • HP_UX_64
  • INTEL_ABI
  • LINUX_32
  • LINUX_IA64 (SAS 9.1.3 a nd later)
  • MIPS_ABI
  • MVS_32
  • OS2
  • RS_6000_AIX_32
  • RS_6000_AIX_64
  • SOLARIS_32
  • SOLARIS_64
  • VAX_VMS
  • WINDOWS_32
  • WINDOWS_64

 

附加:

如果你有SAS/CONNECT使用授权,你也可以使用proc upload来在不同平台不同版本间进行SAS数据文件传送,例如当从WIN上的SAS9传送到UNIX下的SAS8时使用下面语句:

rsubmit;

    proc upload in=客户端数据集

      out=服务器端数据集 v6transport;

         select 你的SAS文件;

    run;

endrsubmit;

加上v6transport 可以确保数字型数据能被正确的传送过来

 

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值