×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

可能不太好办. 要看你的配置了. 提一些建议吧.

本文发表在 rolia.net 枫下论坛通常情况下, 用DBMS/COPY可以解决这个问题. 比如DBMS/COPY version 7. 在Unix下键入"xdbmscopy", 就会出现DBMS/COPY的界面. 可以选则很多种的data type. 当然也会有这种后缀为ssd01, 由SAS UNIX 生成的数据类型. 选好后, 一步一步, 就能将ssd01转话为sas7bdat.

不知道你有没有DBMSCOPY. 如果没有的话, 可能真不好办了. SAS 6.07肯定是没有对应的Windows版本的. 我没用过, 听起来也挺怪异的.

感觉上, 可以试试把那个dataset先转化为SAS transport file. 然后再把这个transport file 读回来.

例如, 你的dataset是"eagles.ssd01". 路径为"c: \ data1 \ eagles.ssd01". 可以用:

libname 道明是 'C : \ data1' ;
libname 花着累 'C : \ data2 ' ;

proc cport data=道明是. eagles
file=' c: \ temp \ eagles.xpt ' ;
run;

如果能转化为SAS transport file, 下一步就是把这个"eagles.xpt"再读回来.

简单的, 可以用:

proc cimport data=花着累. eagles2
infile= ' c: \ temp \ eagles.xpt ' ;
run;

如果不行, 可以用:

libname dat 'C: \ data3' ;
libname library 'C: \ data3';
libname 干扁杉菜 xport 'C: \ temp \ eagles.xpt';

proc copy in=干扁杉菜 out=dat;
run;

proc format library = library cntlin = dat.formats;
run;

以上可以对付有user defined format的情况.

如果上面的招数都不灵, 那我也没有办法了. 只能晕倒在地了.

多试试吧. 说不定就能试出个西门, 美作来.更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / SAS高手们看过来:
    有一个旧的.ssd01数据文件,是SAS 6.07 for HP Unix 生成的。现在手头有SAS 8.02 for windows,完全不认。大家帮忙看看有没有什么好的办法可以读?用别的软件把数据转换也可以,只要能读出来。
    • up, up!!!
    • 大口大口地喘气,救命呀。。。。。。
      • 还喘气不?
        • 一命呜呼了?
          • 快了......
    • it is very easy, if you know C or C++.
      • I do know C. 请问如何操作?
    • 可能不太好办. 要看你的配置了. 提一些建议吧.
      本文发表在 rolia.net 枫下论坛通常情况下, 用DBMS/COPY可以解决这个问题. 比如DBMS/COPY version 7. 在Unix下键入"xdbmscopy", 就会出现DBMS/COPY的界面. 可以选则很多种的data type. 当然也会有这种后缀为ssd01, 由SAS UNIX 生成的数据类型. 选好后, 一步一步, 就能将ssd01转话为sas7bdat.

      不知道你有没有DBMSCOPY. 如果没有的话, 可能真不好办了. SAS 6.07肯定是没有对应的Windows版本的. 我没用过, 听起来也挺怪异的.

      感觉上, 可以试试把那个dataset先转化为SAS transport file. 然后再把这个transport file 读回来.

      例如, 你的dataset是"eagles.ssd01". 路径为"c: \ data1 \ eagles.ssd01". 可以用:

      libname 道明是 'C : \ data1' ;
      libname 花着累 'C : \ data2 ' ;

      proc cport data=道明是. eagles
      file=' c: \ temp \ eagles.xpt ' ;
      run;

      如果能转化为SAS transport file, 下一步就是把这个"eagles.xpt"再读回来.

      简单的, 可以用:

      proc cimport data=花着累. eagles2
      infile= ' c: \ temp \ eagles.xpt ' ;
      run;

      如果不行, 可以用:

      libname dat 'C: \ data3' ;
      libname library 'C: \ data3';
      libname 干扁杉菜 xport 'C: \ temp \ eagles.xpt';

      proc copy in=干扁杉菜 out=dat;
      run;

      proc format library = library cntlin = dat.formats;
      run;

      以上可以对付有user defined format的情况.

      如果上面的招数都不灵, 那我也没有办法了. 只能晕倒在地了.

      多试试吧. 说不定就能试出个西门, 美作来.更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • 你的建议可行,前提是在SAS 6.07版本下操作. 我在SAS 6.12 UNIX 下用过这个方法,系统完全不认我的文件格式. 吐血ing........
        • 老实说, 我没用过SAS 6.07 for HP Unix. 但我相信DBMSCOPY是转化这种old SAS version dataset 的最佳方法. 简单, 快捷. 一般SAS Unix下都装有DBMSCOPY. 还是用它吧.
          proc cport 和proc cimport 是不一定管用的.
          • 直觉上感觉您的方法DBMSCOPY应该是有效的,只是现在暂时没法试。如果能有机会试出来的话一定到这里来发帖子。多谢您的建议。
            • 您太客气了. 这次没帮上什么忙, 是我经验不足啊.
      • Sorry, LD 没sign off, 一不小心用了他的ID.
        • About SAS
          give you a link, try it.
          www.ats.ucla.edu/stat/sas/faq/default.htm
          could you tell me your email-address, maybe you can help with my questions about SAS
    • Firstly laod the SAS 6.0 dataset in Unix to a database table or a file, then read the data to 8.0 in Windows.
    • 本人也遇到同样问题,无法解决。
    • 你能肯定这是新旧版的问题吗?不同操作系统SAS生成的数据文件是不兼容的。但是在同一操作系统中,新版是可以读旧版数据文件的(backward competible)。应该试试回到unix环境中将旧版读成Transport file
      然后在windows里import transprt file

      看看PROC CPORT, PROC CIMPORT两个procedures.另外给你个连接。
      • 各位,请问你们都是在哪弄到的SAS软件。我在网上搜来搜去几乎很少看到,好不容易看到一个下载几天最后还安装不了。多谢了