作者kind3344 (小婊)
看板Statistics
标题Re: [程式] SAS用DO回圈汇出资料
时间Sat Nov 6 22:25:02 2010
%MACRO A;
%DO n=1 %to 12;
DM 'OUTPUT;CLEAR;LOG;CLEAR';
DATA sift_1;
INFILE 'D:\FDATA\F_2005&n..txt';
INPUT a01 a02 $ a03 $ a04 a05;
DATA data_1;
SET sift_1(DROP=a02 a05);
IF a04=49 THEN OUTPUT;
RUN;
PROC EXPORT DATA= WORK.DATA_1
OUTFILE= "C:\Users\Sunny\Desktop\2005&n..txt"
DBMS=DLM REPLACE;
RUN;
%END;
%MEND;
%A;
试试看这样行不行。
※ 引述《SunnyStar (桑尼)》之铭言:
: [软体程式类别]:
: SAS
: [程式问题]:
: 资料处理
: [软体熟悉度]:
: 新手(不到1个月)
: [问题叙述]:
: 我现在有60个资料档(60个月份) (.txt)
: 希望把它分开地一个个汇入SAS,然後做些资料处理(删除栏位、删除不符合资料)
: 然後输出成新的、较简洁的资料档(.txt)
: 带我用do回圈,想说一次起码跑个12个月份,确失败了
: 是我语法下错吗?还是我必须手动汇入>处里>汇出60次 @@
: 恳请大大们指导.
: [程式范例]:
: 附上我的程式码,变数我有简化过,原本input比较多变数
: DO n=1 to 12;
: DM 'OUTPUT;CLEAR;LOG;CLEAR';
: DATA sift_1;
: INFILE 'D:\FDATA\F_2005'+n+'.txt';
: INPUT a01 a02 $ a03 $ a04 a05;
: DATA data_1;
: SET sift_1(DROP=a02 a05);
: IF a04=49 THEN OUTPUT;
: RUN;
: PROC EXPORT DATA= WORK.DATA_1
: OUTFILE= "C:\Users\Sunny\Desktop\2005"+n+".txt"
: DBMS=DLM REPLACE;
: RUN;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.244.82