SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1017|回复: 3
打印 上一主题 下一主题

请问如何批量导入文件(格式一样)

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-2-19 13:30:09 | 只看该作者

请问如何批量导入文件(格式一样)

请问如何批量导入文件(格式一样)
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-2-23 16:30:14 | 只看该作者

Re: 请问如何批量导入文件(格式一样)

在filename中放入要的文件
filename BadFile (
'P:\Regular Report\200901\B1001.bad'
'P:\Regular Report\200901\B1002.bad'
'P:\Regular Report\200901\B1003.bad'
'P:\Regular Report\200901\B1004.bad');

如果要放入宏变量的话,用""包括文件,否则不会解析
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-2-27 16:22:48 | 只看该作者

Re: 请问如何批量导入文件(格式一样)

导入数据的话,想到的常规方法是用proc import,
批量导入的话,考虑写成宏循环,这是目前想到的方法。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-3-2 21:49:34 | 只看该作者

Re: 请问如何批量导入文件(格式一样)

filename indata pipe 'dir c:\exer /b';    /*c:\exer是文件所在的目录*/
data file_list;
length fname $20.;
infile indata truncover;
call symput ('num_files',_n_);
input fname $20.;
prefixname=tranwrd(fname,'.xls','');   /*如果是csv,就写csv*/
call symput ('out',prefixname);
call symput ('in',fname);
run;

data _null_;
set file_list;
by prefixname;
if first.prefixname
then call execute('proc import out=' || prefixname || '
datafile="c:\0\exer1\' || fname || '" dbms=excel replace; run;');   /*如果是csv,就把excel写成csv*/
run;
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 14:02 , Processed in 0.073833 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表