楼主: sean1945
4523 2

[原创博文] 请教:批量.txt 数据文件一次性导入SAS并逐个进行线性回归分析 [推广有奖]

  • 0关注
  • 3粉丝

已卖:276份资源

博士生

74%

还不是VIP/贵宾

-

威望
0
论坛币
1047 个
通用积分
87.3837
学术水平
3 点
热心指数
3 点
信用等级
3 点
经验
15949 点
帖子
214
精华
0
在线时间
455 小时
注册时间
2007-11-4
最后登录
2024-1-7

楼主
sean1945 发表于 2010-2-2 09:58:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位好:我有大批量.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;
二维码

扫码加我 拉你入群

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

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

关键词:线性回归分析 数据文件 线性回归 回归分析 一次性 回归分析 因变量 自变量 如何 最好

回帖推荐

xiaosanmao 发表于2楼  查看完整内容

/*把原始的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 fn ...

本帖被以下文库推荐

沙发
xiaosanmao 发表于 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;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
sean1945 发表于 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句我不太理解,能否解释一下?谢谢。
他大舅他二舅都是他舅,高桌子低板凳都是木头

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-19 18:03