全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅 求助成功区
4476 3
2015-12-05
悬赏 5 个论坛币 已解决
求救一个问题:文件夹'E:\temp'下有64个CSV文件,如下图所示:
,每个CSV文件中有个字段如图所示,采用的是科学计数法,如果用proc import 导入到SAS中,数据集中存的会是科学计数法的数值。如下图:
.问题:如果是一个文件使用SAS EG导入数据即可解决该问题,问题是使用PROC IMPORT如何解决产生科学计数法的问题?论坛不能上传CSV格式的文件,只好传XLSX格式的文件。
附件: 您需要登录才可以下载或查看附件。没有帐号?我要注册

最佳答案

squirrelel 查看完整内容

如果正确理解了你的问题,批量导入可以用pipe把所有文件名存成一个SAS dataset,然后在data step里先读入这个dataset,再在infile statement用filevar来打开需要读取的文件,这样每一个loop都会读取相应的文件,同时可以自定每个变量的格式。 以下来自 Introduction to SAS. UCLA: Statistical Consulting Group. from http://www.ats.ucla.edu/stat/sas/faq/multi_file_read.htm (accessed December 5, 2015). %let dir ...
二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-5 23:05:29
如果正确理解了你的问题,批量导入可以用pipe把所有文件名存成一个SAS dataset,然后在data step里先读入这个dataset,再在infile statement用filevar来打开需要读取的文件,这样每一个loop都会读取相应的文件,同时可以自定每个变量的格式。

以下来自
Introduction to SAS.  UCLA: Statistical Consulting Group.
from http://www.ats.ucla.edu/stat/sas/faq/multi_file_read.htm (accessed December 5, 2015).

%let dirname = c:\work\raw_data_files;
filename DIRLIST pipe "dir /B &dirname\*.txt";

data dirlist ;
     length fname $256;
     infile dirlist length=reclen ;
     input fname $varying256. reclen ;
run;
proc print data = dirlist;
run;

***
Obs    fname

  1    file01.txt
  2    file3.txt
  3    file7.txt

***

data all_text (drop=fname);
  length myfilename $100;
  length name $25;
  set dirlist;
  filepath = "&dirname\"||fname;
  infile dummy filevar = filepath length=reclen end=done missover;
  do while(not done);
    myfilename = filepath;
    input name $  x1 x2 x3;  
    output;
  end;
run;
proc print data=all_text;
run;

***

Obs            myfilename                    name      x1     x2    x3
  1    C:\work\raw_data_files\file01.txt    John       12    354     7
  2    C:\work\raw_data_files\file01.txt    Carl       43    657     9
  3    C:\work\raw_data_files\file01.txt    Mary      343      7     9
  4    C:\work\raw_data_files\file3.txt     adam       12    354     7
  5    C:\work\raw_data_files\file3.txt     brad       43    657     9
  6    C:\work\raw_data_files\file3.txt     tyler     343      7     9
  7    C:\work\raw_data_files\file7.txt     mary      343     56     2
  8    C:\work\raw_data_files\file7.txt     robert    243     67     8
  9    C:\work\raw_data_files\file7.txt     brad       43    657     9
10    C:\work\raw_data_files\file7.txt     tyler     343      7     9

***
二维码

扫码加我 拉你入群

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

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

2015-12-5 23:06:34
这个是用PROC import的方法
proc import datafile='E:\temp\test_10.csv'
        out        =work.test_10
        DBMS=csv REPLACE;
RUN;
二维码

扫码加我 拉你入群

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

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

2015-12-19 20:21:56
楼上提供的链接http://www.ats.ucla.edu/stat/sas/faq/multi_file_read.htm,有个问题导出的文件都有同样的数据结构,我这问题是每个excel文件的表结构都不一样。说白了,这几个CSV是从数据库不同的表导出来的数据,现在要批量导入到SAS中。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群