2011年8月13日
最近一直在跟着李东风的《统计软件教程》学习SAS,刚刚学完初等统计,感觉还没入门,找不到matlab编程时那种手顺的感觉。继续学习吧,加油!
最近用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: emp est.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