全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4186 3
2008-05-08

大家帮我看看一下代码有什么问题,老是出错,急。谢啦

*FA_Clust.SAS runs Factor Analysis & Cluster Analysis
        for social area analysis in Beijing             */
/*By Fahui Wang on 2-4-05                               */

/* read the attribute data */
proc import datafile="c:\gis_quant_book\projects\bj\bjattr.csv"
     out=bj1 dbms=dlm replace;
     delimiter=', ';
     getnames=yes;
proc means;

/* Run factor analysis */
proc factor out=fscore(replace=yes)
  nfact=4 rotate=varimax; /* 4 factors used */
  var x1-x14;
/*export factor score data */
proc export data=fscore dbms=csv
     outfile="c:\gis_quant_book\projects\bj\factscore.csv";

/* Run cluster analysis */
/* Factor scores are first weighted by their relative importance
   measured by variance portions accounted for (based on FA)  */
data clust; set fscore;
      factor1 = 0.3516*factor1;
      factor2 = 0.1542*factor2;
      factor3 = 0.1057*factor3;
      factor4 = 0.0922*factor4;
proc cluster method=ward outtree=tree;
   id ref_id; var factor1-factor4; /*plot dendrogram */
proc tree out=bjclus ncl=9; /* cut the tree at 9 clusters */
   id ref_id;
/* export the cluster analysis result */
proc export data=bjclus dbms=csv
   outfile="c:\gis_quant_book\projects\bj\cluster9.csv";
run;

运行以后出现一下错误,可我不知道该怎么修改。麻烦高手给指点一下哈

ERROR: 没有默认的输入数据集(_LAST_ 是 _NULL_)。
71
72   /* Run factor analysis */

NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: PROCEDURE MEANS 所用时间(总处理时间):
      实际时间         0.04 秒
      CPU 时间         0.01 秒

73   proc factor out=fscore(replace=yes)
74     nfact=4 rotate=varimax; /* 4 factors used */
ERROR: 没有默认的输入数据集(_LAST_ 是 _NULL_)。
75     var x1-x14;
76   /*export factor score data */

NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.FSCORE 可能不完整。在停止该步后有 0 个观测和 0 个变量。
NOTE: PROCEDURE FACTOR 所用时间(总处理时间):
      实际时间         0.04 秒
      CPU 时间         0.00 秒

77   proc export data=fscore dbms=csv
78        outfile="c:\gis_quant_book\projects\bj\factscore.csv";
79
80   /* Run cluster analysis */
81   /* Factor scores are first weighted by their relative importance
82      measured by variance portions accounted for (based on FA)  */

NOTE: 数据集 WORK.FSCORE 中没有变量。
NOTE: Export Cancelled.
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: PROCEDURE EXPORT 所用时间(总处理时间):
      实际时间         0.07 秒
      CPU 时间         0.07 秒

83   data clust; set fscore;
84         factor1 = 0.3516*factor1;
85         factor2 = 0.1542*factor2;
86         factor3 = 0.1057*factor3;
87         factor4 = 0.0922*factor4;

NOTE: 从数据集 WORK.FSCORE 读取了 0 个观测。
NOTE: 数据集 WORK.CLUST 有 0 个观测和 4 个变量。
NOTE: DATA 语句 所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒


88   proc cluster method=ward outtree=tree;
89      id ref_id; var factor1-factor4; /*plot dendrogram */
ERROR: 变量 REF_ID 没有找到。

NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.TREE 可能不完整。在停止该步后有 0 个观测和 0 个变量。
NOTE: PROCEDURE CLUSTER 所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

90   proc tree out=bjclus ncl=9; /* cut the tree at 9 clusters */
91      id ref_id;
ERROR: 变量 REF_ID 没有找到。
92   /* export the cluster analysis result */

NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.BJCLUS 可能不完整。在停止该步后有 0 个观测和 0 个变量。
NOTE: PROCEDURE TREE 所用时间(总处理时间):
      实际时间         0.06 秒
      CPU 时间         0.00 秒

93   proc export data=bjclus dbms=csv
94      outfile="c:\gis_quant_book\projects\bj\cluster9.csv";
95   run;

NOTE: 数据集 WORK.BJCLUS 中没有变量。
NOTE: Export Cancelled.
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: PROCEDURE EXPORT 所用时间(总处理时间):
      实际时间         0.07 秒
      CPU 时间         0.07 秒


二维码

扫码加我 拉你入群

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

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

全部回复
2008-5-9 11:18:00

看一下是不是读取文件有问题,你可以先把数据手工导进去,然后执行分析

二维码

扫码加我 拉你入群

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

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

2008-5-10 05:24:00
Would you please post the ENTIRE log? I want to see whether PROC MEANS executed correctly.
二维码

扫码加我 拉你入群

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

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

2008-5-10 10:39:00

*FA_Clust.SAS runs Factor Analysis & Cluster Analysis
        for social area analysis in Beijing             */

这个注释语句不对。

/* read the attribute data */
proc import datafile="c:\gis_quant_book\projects\bj\bjattr.csv"
     out=bj1 dbms=dlm replace;
     delimiter=', ';
     getnames=yes;

一般这个地方加 “RUN;”
从报错的情况看,应该是读入数据时就报错了

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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