楼主: redaring
3020 3

求助,导入文本文件的过程中出现的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
48 个
通用积分
0.0600
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
4910 点
帖子
102
精华
0
在线时间
123 小时
注册时间
2009-11-22
最后登录
2018-2-15

楼主
redaring 发表于 2010-8-4 03:02:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有50000个文本文件,想要导入到sas成数据集,参考之前论坛中某位大侠提供的方法,写了一个分别一个个导入的程序。
可是导入的过程中出现两个问题:
1)如果 infile "l:\sas\c2.txt" 中文件路径是带文件后缀名.txt的话,log中会提示找不到这个物理文件infile "l:\sas\c2txt" ,它好像直接把文件名和后缀名中间的点忽略掉了,试过多种方法输入这个点或改为别的后缀,都还是没有办法解决这个问题。
于是,把后缀名直接删掉了,倒是可以读了。可是又遇到第二个问题
2)用input 输入了变量名和长度,因为之前试过用间隔符,可是一直都没有把每列读正确,后来只好不厌其烦的给34个变量分别定长度,前面的变量都读得比较顺利,可是log中提示最后两个变量,怎么都没有办法把正确数据读进去,不知道为什么。

另外,文件原来的格式是c.dly,我不知道dly是什么格式,但是直接把后缀改成txt,就可以用记事本或写字板打开,如果哪位大侠知道这个dly文件,请赐教一下。

我把运行出错的log,我写的语句,以及程序中用来测试的3个数据文件传上来。
希望哪位大侠可以帮忙看看,告诉我到底是怎么回事,如果是我写的语句的问题,那应该改成怎样的?或者有没有更好的办法?

另外的另外,我最后的目的是要把这5万个文件中的数据做成一个数据集的,不知道有没有办法可以把这5万个文件一次导入为一个数据集,而不需要逐个导入以后,再合并。

由于我的sas处于很菜鸟阶段,希望可以帮忙写出具体的语句,或者指明要改哪里。
非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:文本文件 infile Input file 运行出错 求助 文本文件

新建文件夹.rar
下载链接: https://bbs.pinggu.org/a-708615.html

20.77 KB

data.rar

1.08 KB

本附件包括:

  • data.txt

沙发
redaring 发表于 2010-8-4 08:58:11
还是把语句贴出来,让各位比较容易看吧。求助啊!

%macro readraw(first=1,last=3);                                                                                                        
   %local num;                                                                                                                          
   %do num=&first %to &last;                                                                                                            
      data c#                                                                                                                       
        infile "l:\sas\c&num";                                                                                                         
        input ID      $      1-11      YEAR            12-15      MONTH            16-17      ELEMENT      $      18-21                 
VALUE1            22-26      MFLAG1      $      27-27      QFLAG1      $      28-28      SFLAG1      $      29-29                       
VALUE2            30-34      MFLAG2      $      35-35      QFLAG2      $      36-36      SFLAG2      $      37-37                       
……
VALUE30            254-258      MFLAG30      $      259-259      QFLAG30      $      260-260      SFLAG30      $      261-261           
VALUE31            262-266      MFLAG31      $      267-267      QFLAG31      $      268-268      SFLAG31      $      269-269;         
      run;                                                                                                                              
   %end;                                                                                                                                
%mend readraw;                                                                                                                          
%readraw(first=1,last=3);                                                                                                               
run;

藤椅
redaring 发表于 2010-8-4 11:03:27
又发现,似乎是数据格式的问题,可是怎么数都觉得自己输的列数没错,上传这个data.txt的文件,这个数据里面明明有几十行,可是用我写的infile语句只能读到5行。

完全不明白为什么……

求高人帮忙啊!

板凳
redaring 发表于 2010-8-4 22:52:03
没有哪位对这个问题有兴趣么...

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 21:15