全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4472 2
2010-02-02
各位好:我有大批量.txt 数据文件(200个左右),文件格式全部一致,存于“D:\sean"中,
每个.txt文件都有3个变量(Date  LighttrapData  ModelPrediction),分别表示调查日期、自变量X 、因变量Y,
我要做关于Y和X的线性回归分析,并将结果输出到外部文件。

我想请教如何将不同年份.txt 文件一次性全部导入到SAS中,并对Y和X进行线性回归分析,结果能否一次性全部输出?很多大侠说写个宏,我不在行,哪位能帮忙,最好给出代码,有注释更好。谢谢!

数据路径和格式见下图:


单独一年的数据我可以分析,代码如下:
libname Model"d:\Program Files\SAS 9.1data"; /* 建立永久性数据库Model,用于存放数据文件 */
options nodate ;         
data Model.my1980;
infile 'd:\sean\my1980.txt' firstobs=2;
input Date: yymmdd10. LighttrapData ModelPrediction;
format Date yymmdd10.;                  
run;

ODS HTML file="d:\model\my1980.HTML";

title 'Light-trap-data_my_gnuplot_Prediction vs Lighttrap1980';
PROC PLOT;
PLOT ModelPrediction*LighttrapData='*';   /* 作原始数据散点图,以了解是否适合作直线相关和回归分析 */
RUN;
PROC CORR;
    VAR LighttrapData ModelPrediction;        /* 调用CORR过程作相关分析 */
RUN;
PROC REG;
    MODEL ModelPrediction=LighttrapData;
run;
PROC REG;
    MODEL ModelPrediction=LighttrapData / noint R CLI CLM;
    PLOT (U95. L95. P.)*LighttrapData='-' ModelPrediction*LighttrapData='o' / OVERLAY;
   OUTPUT OUT=my1980 P=yhat R=yresid;
RUN;
PROC PLOT DATA=my1980;
      PLOT yresid*yhat='R';          /* 调用PLOT过程绘残差图,纵轴为残差,横轴为Y的预测值 */
RUN;

ODS HTML close;
二维码

扫码加我 拉你入群

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

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

全部回复
2010-2-2 11:58:58
/*把原始的txt数据文件全部放入        d:\sean\ 中,不要改动,复制运行下面代码即可,结果文件也是在d:\sean\中
http://www.pinggu.org/bbs/thread-705581-1-1.html*/

%let path=d:\sean\;
%let path1=d:\;
x "dir &path.*.txt /b > &path1.fname.txt";
proc import datafile="d:\fname.txt" out=tmp dbms=tab replace;
getnames=no;delimiter=' ';run;
data fname;set tmp;
fname=compress('%a('||var1||')','.txt');keep fname;
file "d:\ex.txt";put fname;run;
%macro a(f);data &f;
infile "d:\sean\&f..txt" firstobs=2;
input date:yymmdd10. lighttrapdata modelprediction;
format date yymmdd10.;run;
ODS HTML file="d:\sean\&f..HTML";
title 'Light-trap-data_my_gnuplot_Prediction vs Lighttrap'&f;
PROC PLOT;
PLOT ModelPrediction*LighttrapData='*';   /* 作原始数据散点图,以了解是否适合作直线相关和回归分析 */
RUN;
PROC CORR;
VAR LighttrapData ModelPrediction;        /* 调用CORR过程作相关分析 */
RUN;
PROC REG;
    MODEL ModelPrediction=LighttrapData;
run;
PROC REG;
    MODEL ModelPrediction=LighttrapData / noint R CLI CLM;
    PLOT (U95. L95. P.)*LighttrapData='-' ModelPrediction*LighttrapData='o' / OVERLAY;
   OUTPUT OUT=my1980 P=yhat R=yresid;
RUN;
PROC PLOT DATA=my1980;
      PLOT yresid*yhat='R';          /* 调用PLOT过程绘残差图,纵轴为残差,横轴为Y的预测值 */
RUN;
ODS HTML close;
%mend a;%include "d:\\ex.txt";run;
二维码

扫码加我 拉你入群

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

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

2010-2-2 13:10:11
[quote]xiaosanmao 发表于 2010-2-2 11:58
/*把原始的txt数据文件全部放入        d:\sean\ 中,不要改动,复制运行下面代码即可,结果文件也是在d:\sean\中
http://www.pinggu.org/bbs/thread-705581-1-1.html*/

%let path=d:\sean\;
%let path1=d:\;
x "dir &path.*.txt /b > &path1.fname.txt";
proc import datafile="d:\fname.txt" out=tmp dbms=tab replace;
getnames=no;delimiter=' ';run;
data fname;set tmp;
fname=compress('%a('||var1||')','.txt');keep fname;
file "d:\ex.txt";put fname;run;
%macro a(f);data &f;

谢谢大侠,你帮了我大忙了哈。代码的第2句和第3句我不太理解,能否解释一下?谢谢。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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