注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

SAS累积占比  

2013-09-18 21:03:12|  分类: SAS学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
SAS累积占比

 最近用spss处理数据,但是spss缺乏变量内的计算。想算出一个累积占比还得靠SAS
首先 数据手动导入命名class;
然后 数据按某一列降序排列;
proc sort data=class  out=class2;
by descending VAR2;
run;
最后 新加一列占比,并且算出累积占比;
data class1;
set class2;
format _all_;
retain getpost_sumzb;
getpost_sumzb+getpost_zhanbi;
retain sumbytes_sumzb;
sumbytes_sumzb+sumbytes_zhanbi;
chazhi=getpost_sumzb-sumbytes_sumzb;
run;
proc sort data=class1  out=class3;
by descending chazhi;
run;
data class_80;
set class1;
if getpost_sumzb<=0.8;
run;

如下是高手的方法特此引荐,以后细看:

data a;
input date :yymmn6.
      amt  
          ;
format date yymmn6.;
cards;
201101    100 
201102    200
201103    300
201104    400
201105    500
;
 data result1;
  do until(last);
    set a end=last;
        ytd_amt+amt;
        output;
  end;
 run;
 proc sql;
    create table result2 as
      select distinct (a.date),a.amt, sum(b.amt) as ytd_amt
            from (select a.*,monotonic() as n from a) a
                  join  (select a.*,monotonic() as n from a) b
                    on a.n ge b.n
                      group by a.n;
 quit;

错误: ERROR: Width specified for format F is invalid
    或 ERROR: 为输出格式“F”指定的宽度无效
The following errors occur after you try to import an SPSS file into a SAS data set:

ERROR: The decimal specification of 2 must be less than the width specification of 2. ERROR: The decimal specification of 2 must be less than the width specification of 2. ERROR: The decimal specification of 2 must be less than the width specification of 2. ERROR: Width specified for format F is invalid. ERROR: Width specified for format F is invalid. ERROR: Width specified for format F is invalid.
 
For example, these errors occur when you submit an IMPORT procedure similar to the following:

proc import datafile="c:\temp\test.sav" out=xyz dbms=sav; run; data
test1; set xyz; run;
The errors occur when the lengths of the SPSS fields are read into the SAS? System as negative values.
To circumvent this error, use FORMAT _ALL_ statement in the DATA step, as shown in the following output:

data test1; set xyz; format _all_; run; NOTE: There were 6
observations read from the data set WORK.XYZ. NOTE: The data set
WORK.TEST1 has 6 observations and 642 variables. NOTE: DATA
statement used (Total process time): real time 0.01 seconds cpu
time 0.01 seconds

  评论这张
 
阅读(948)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017