楼主: 516469702
8121 9

求*.xpt类型文件的使用方法,恳请版主老师指点 [推广有奖]

  • 0关注
  • 0粉丝

小学生

57%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
85 点
帖子
5
精华
0
在线时间
10 小时
注册时间
2008-9-4
最后登录
2013-8-23

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请各位高手指点*.xpt类型文件的使用方法,是在http://www.cpc.unc.edu/网站上下载的。根据网站的说明是SAS XPORT类型,但是SAS似乎不支持。附件中有数据的样本。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:xport Port HTTP 高手指点 UNC 网站 样本

c00.1004.zip

7.42 MB

本附件包括:

  • c00pe.1004.xpt
  • c00emw1.1004.xpt
  • c00emw2.1004.xpt
  • c00emw.1004.xpt
  • c00en.1004.xpt
  • c00hh6.1004.xpt
  • c00hh7.1004.xpt
  • c00hh8.1004.xpt
  • c00hh9.1004.xpt
  • c00hh10.1004.xpt
  • c00hh11a.1004.xpt
  • c00hh11b.1004.xpt
  • c00hh12.1004.xpt
  • c00hh13a.1004.xpt
  • c00hh13b.1004.xpt
  • c00hh15.1004.xpt
  • c00hh17.1004.xpt
  • c00hh21.1004.xpt
  • c00hh22.1004.xpt
  • c00hh23.1004.xpt
  • c00hh24.1004.xpt
  • c00hh.1004.xpt
  • c00hhnew.1004.xpt
  • c00hhold.1004.xpt
  • c00nutr1.1004.xpt
  • c00nutr2.1004.xpt
  • c00nutr3.1004.xpt

沙发
pobel 在职认证  发表于 2010-9-14 14:05:47 |只看作者 |坛友微信交流群
楼主试试在libname语句中加上xport, 并指向xpt文件。

libname aaa  xport   "C:\files\test.xpt";

*** Create XPT file;
data aaa.test;
     set sashelp.class;
run;

*** Convert XPT File to SAS dataset;
data class;
     set aaa.test;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

和谐拯救危机

使用道具

藤椅
pobel 在职认证  发表于 2010-9-14 14:11:53 |只看作者 |坛友微信交流群
还有一种XPT文件是由PROC CPORT 产生,这时就需要先用filename指向该文件,然后用PROC CIMPORT将xpt文件转为SAS数据集。

filename temp1 "C:\files\temp.xpt";

*** Create XPT file;
proc cport data=sashelp.class file=temp1;
run;

*** Convert back;
proc cimport infile=temp1 data=class1;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

和谐拯救危机

使用道具

板凳
516469702 发表于 2010-9-14 17:01:35 |只看作者 |坛友微信交流群
非常感谢你的指点,不过我按照你的语句执行好像并不行呢。能不能麻烦你下载附件帮我看看呢?

test.zip

987.03 KB

本附件包括:

  • c00pe.1004.xpt

使用道具

报纸
pobel 在职认证  发表于 2010-9-14 17:11:44 |只看作者 |坛友微信交流群
试一下这个,我这里能转成数据集:

libname aaa xport "C:\files\c00pe.1004.xpt";

*** Convert XPT File to SAS dataset;
data wanted;
     set aaa.c00pe;
run;
和谐拯救危机

使用道具

地板
516469702 发表于 2010-9-14 21:36:23 |只看作者 |坛友微信交流群
非常感谢,按照你的方法我终于看见数据了。不过我这里XPT文件非常的多,不知道有没有办法可以实现批转换呢?请指教

使用道具

7
pobel 在职认证  发表于 2010-9-15 07:01:15 |只看作者 |坛友微信交流群
516469702 发表于 2010-9-14 21:36
非常感谢,按照你的方法我终于看见数据了。不过我这里XPT文件非常的多,不知道有没有办法可以实现批转换呢?请指教
可以用宏
和谐拯救危机

使用道具

8
suzhzh 发表于 2013-7-3 12:59:50 |只看作者 |坛友微信交流群
stat transfer software

使用道具

9
tianlp 发表于 2015-4-17 16:25:24 |只看作者 |坛友微信交流群
如果你是准备用stata打开的话,那么你可以下载一个stata transfer,然后在input file里面选择SAS Transport,然后output file 里面选择Stata/se格式,就可以了。如果你用的是其他软件,那么input file的选择不变,outfile格式选择你自己需要的就是了。

使用道具

10
蓝_23 发表于 2017-7-15 13:46:13 |只看作者 |坛友微信交流群
http://support.sas.com/kb/33/918.html
附上链接,可以批量XPT导入SAS,但是同名的不行,即使改了名字。
  1. /* The code below creates a transport file in the temp folder for use by the macro */

  2.   libname testlib xport 'c:\temp\trans.xpt';
  3.     proc copy in=sashelp out=testlib;
  4.     select retail;
  5.   run;

  6. /* Note:  Macro starts here */

  7. /* Macro using PROC COPY and the XPORT engine for reading transport files*/
  8. %macro drive(dir,ext,out);                                                                                                                  
  9.                                                                                                                                        
  10.   %let filrf=mydir;                                                                                                                     
  11.                                                                                                                                        
  12.   /* Assigns the fileref of mydir to the directory and opens the directory */                                                                    
  13.   %let rc=%sysfunc(filename(filrf,&dir));                                                                                                
  14.   %let did=%sysfunc(dopen(&filrf));                                                                                                      
  15.                                                                                                                                        
  16.   /* Returns the number of members in the directory */                                                                  
  17.   %let memcnt=%sysfunc(dnum(&did));                                                                                                      
  18.                                                                                                                                        
  19.    /* Loops through entire directory */                                                                                                  
  20.    %do i = 1 %to &memcnt;                                                                                                               
  21.    
  22.      /* Returns the extension from each file */                                                                                                                                    
  23.      %let name=%qscan(%qsysfunc(dread(&did,&i)),-1,.);                                                                                   
  24.                                                                                                                                        
  25.      /* Checks to see if file contains an extension */                                                                                    
  26.      %if %qupcase(%qsysfunc(dread(&did,&i))) ne %qupcase(&ext) %then %do;                                                                  
  27.                                                                                                                                        
  28.      /* Checks to see if the extension matches the parameter value */                                                                     
  29.      /* If condition is true, submit PROC COPY statement  */                                                                     
  30.      %if (%superq(ext) ne and %qupcase(&name) = %qupcase(&ext)) or                                                                       
  31.          (%superq(ext) = and %superq(name) ne) %then %do;   
  32.                                                                         
  33.                  libname old xport "&dir.\%qsysfunc(dread(&did,&i))";
  34.                 libname new "&out";
  35.                 proc copy in=old out=new;
  36.                 run;
  37.      %end;                                                                                                                              
  38.    %end;
  39.   %end;
  40.                                                                                                                                        
  41.   /* Close the directory */                                                                                                            
  42.   %let rc=%sysfunc(dclose(&did));                                                                                                        
  43. /* END MACRO */                                                                                                                                          
  44. %mend drive;   

  45. /* Macro call */

  46. /*First parameter is the source folder, the second parameter is extension being */
  47. /*searched for, and the third parameter is the target directory for the         */
  48. /*converted files.                                                              */

  49.   %drive(c:\temp,xpt,c:\temp\)
复制代码

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 21:03